秘钥对生成
- Java生成秘钥对
# maven 依赖
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.security.spec.ECGenParameterSpec;
import org.apache.commons.codec.binary.Base64;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class Sm2Test {
public static void main(String[] args) throws Exception {
KeyPair keyPair = Sm2Test.generateSm2KeyPair();
String privateKey = Base64.encodeBase64String(keyPair.getPrivate().getEncoded());
String publicKey = Base64.encodeBase64String(keyPair.getPublic().getEncoded());
System.out.println(privateKey);
System.out.println(publicKey);
}
public static KeyPair generateSm2KeyPair() throws Exception {
try {
final ECGenParameterSpec sm2Spec = new ECGenParameterSpec("sm2p256v1");
final KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", new BouncyCastleProvider());
SecureRandom random = new SecureRandom();
kpg.initialize(sm2Spec, random);
KeyPair keyPair = kpg.generateKeyPair();
return keyPair;
} catch (Exception e) {
System.err.println(e);
throw new Exception(e);
}
}
}
- OpenSSL生成秘钥对