java sm2 加解密
时间: 2023-10-29 10:05:34 浏览: 117
好的,关于 Java 中的 SM2 加解密,需要使用 Bouncy Castle 库来实现。具体步骤如下:
1. 生成 SM2 密钥对
```java
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC", "BC");
ECGenParameterSpec ecGenParameterSpec = new ECGenParameterSpec("sm2p256v1");
keyPairGenerator.initialize(ecGenParameterSpec, new SecureRandom());
KeyPair keyPair = keyPairGenerator.generateKeyPair();
```
2. 获取公钥和私钥
```java
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
```
3. 加密
```java
Cipher cipher = Cipher.getInstance("SM2", "BC");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(plainText.getBytes());
```
4. 解密
```java
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
String decryptedText = new String(decryptedData);
```
注意:在使用 Bouncy Castle 库时,需要先添加 Bouncy Castle 作为安全提供者。
阅读全文