Eclipse创建ASN项目|保存后没有生成对应java文件的原因及解决方案

创建ASN项目

在这里插入图片描述
先选择创建项目文件。
在这里插入图片描述
在这里插入图片描述
再在ASN下的source文件夹下创建Module文件。命名首字母要大写。
在这里插入图片描述
在这里插入图片描述
这样就创建完成了。但是可能会出现一个问题,output文件夹中的java目录下没有产生对应的java文件。
在这里插入图片描述

解决方案

Invalid license(无效许可证)所以给添加一个许可码即可

ASN.1 Java Compiler Serial Number:

4923CD4933B59BC0D92B9221CB18F87D783D2BBD34F43AFA76D91C8F64F65338C2B6C046F6E187A6BD7387E6361B9A34

注意,这个许可证是有一定的保质期的,如果过期了可以自行去官网进行申请。
www.asnlab.com 点击下图黄色标注部分进行申请(浏览器最好是谷歌或者火狐,其他浏览器可能会打不开)。
在这里插入图片描述

添加方式
上方菜单栏:window->Preferences
点开ASN.1菜单,输入许可证
在这里插入图片描述

点击Apply后即可正常生成java文件
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过以下步骤生成SM2公钥并将其保存为PEM格式的文件: 1. 使用Bouncy Castle库中的KeyPairGenerator和ECNamedCurveTable类生成SM2密钥对。 ```java KeyPairGenerator generator = KeyPairGenerator.getInstance("EC", "BC"); ECNamedCurveParameterSpec spec = ECNamedCurveTable.getParameterSpec("sm2p256v1"); generator.initialize(spec); KeyPair keyPair = generator.generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); ``` 2. 将SM2公钥转换为PEM格式。可以使用Bouncy Castle库中的JcaPEMWriter和PemObject对象来实现。 ```java // 将公钥转换为PEM格式 PemObject pemObject = new PemObject("PUBLIC KEY", publicKey.getEncoded()); StringWriter stringWriter = new StringWriter(); JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter); pemWriter.writeObject(pemObject); pemWriter.close(); // 将PEM格式的公钥保存文件 FileWriter fileWriter = new FileWriter("public_key.pem"); fileWriter.write(stringWriter.toString()); fileWriter.close(); ``` 完整的SM2公钥生成保存为PEM文件的示例代码如下: ```java import java.io.FileWriter; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import org.bouncycastle.asn1.x9.ECNamedCurveTable; import org.bouncycastle.asn1.x9.X9ECParameters; import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPrivateKey; import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.openssl.jcajce.JcaPEMWriter; import org.bouncycastle.util.io.pem.PemObject; public class SM2KeyPairGenerator { public static void main(String[] args) throws Exception { // 添加Bouncy Castle作为安全提供程序 Security.addProvider(new BouncyCastleProvider()); // 生成SM2密钥对 KeyPairGenerator generator = KeyPairGenerator.getInstance("EC", "BC"); X9ECParameters ecParams = ECNamedCurveTable.getByName("sm2p256v1"); generator.initialize(ecParams); KeyPair keyPair = generator.generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); // 将公钥转换为PEM格式 PemObject pemObject = new PemObject("PUBLIC KEY", publicKey.getEncoded()); StringWriter stringWriter = new StringWriter(); JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter); pemWriter.writeObject(pemObject); pemWriter.close(); // 将PEM格式的公钥保存文件 FileWriter fileWriter = new FileWriter("public_key.pem"); fileWriter.write(stringWriter.toString()); fileWriter.close(); } } ``` 注意,上述示例代码中使用了Bouncy Castle库中的类和方法。如果你的项目中没有引入Bouncy Castle库,需要先下载并添加到项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值