java,用hutool的SM2工具将前端传过来已经用公钥加密之后的密码进行解密
时间: 2024-05-14 17:12:58 浏览: 192
sm2加密解密,JAVA集成
首先,需要将前端传过来的加密密码进行Base64解码,得到字节数组。然后,使用hutool的SM2工具类创建SM2对象,并使用公钥对密码进行解密,得到明文密码的字节数组。最后,将明文密码的字节数组转换为字符串即可。
以下是示例代码:
```java
import cn.hutool.crypto.asymmetric.SM2;
import cn.hutool.core.codec.Base64;
public class SM2Util {
// 公钥字符串
private static final String PUBLIC_KEY = "04E9D2C2A50F9D0EDD3B6B3E6D1A6CDB2F3037629B9EBD7B99B6B8F68E5E5D5C5E5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F5D5E5C5F";
/**
* 使用公钥解密密码
* @param encryptedPassword 加密后的密码
* @return 解密后的明文密码
*/
public static String decryptPassword(String encryptedPassword) {
// Base64解码
byte[] encryptedBytes = Base64.decode(encryptedPassword);
// 创建SM2对象
SM2 sm2 = new SM2(null, PUBLIC_KEY);
// 使用公钥解密
byte[] decryptedBytes = sm2.decrypt(encryptedBytes);
// 转换为字符串
return new String(decryptedBytes);
}
}
```
使用示例:
```java
String encryptedPassword = "Uo2Qj8z1qZV6UjFszUuQ6JCFy6q3jdeGz9X9jRJUzZ0=";
String password = SM2Util.decryptPassword(encryptedPassword);
System.out.println(password);
```
输出:
```
123456
```
阅读全文