一:创建密钥对
System.out.println("----------生成秘钥对start----------------");
// 引入BC库
Security.addProvider(new BouncyCastleProvider());
// 获取SM2椭圆曲线的参数
final ECGenParameterSpec sm2Spec = new ECGenParameterSpec("sm2p256v1");
// 获取一个椭圆曲线类型的密钥对生成器
final KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", new BouncyCastleProvider());
// 使用SM2参数初始化生成器
kpg.initialize(sm2Spec);
// 使用SM2的算法区域初始化密钥生成器
kpg.initialize(sm2Spec, new SecureRandom());
// 获取密钥对
KeyPair keyPair = kpg.generateKeyPair();
PublicKey pk = keyPair.getPublic();
PrivateKey privk= keyPair.getPrivate();
System.out.println("公钥串:"+new BASE64Encoder().encode(keyPair.getPublic().getEncoded()));
System.out.println("私钥串:"+new BASE64Encoder().encode(keyPair.getPrivat