JAVA 将长字符串生成15位唯一加密字符串,支持AES解密
时间: 2023-08-17 14:04:01 浏览: 156
JAVA实现AES加密和解密
您可以使用 Java 的 MessageDigest 类和 Base64 类来实现这个功能。以下是一个示例代码:
```java
import java.security.MessageDigest;
import java.util.Base64;
public class EncryptionUtil {
public static String encrypt(String input) throws Exception {
// Create a message digest instance using SHA-256 algorithm
MessageDigest md = MessageDigest.getInstance("SHA-256");
// Generate a hash value for the input string
byte[] hashBytes = md.digest(input.getBytes("UTF-8"));
// Encode the hash value using Base64 encoding
String encoded = Base64.getEncoder().encodeToString(hashBytes);
// Return the first 15 characters of the encoded string
return encoded.substring(0, 15);
}
public static String decrypt(String encryptedInput) throws Exception {
// Asymmetric encryption is not possible with hash algorithms like SHA-256
// Therefore, AES decryption is not possible with the generated hash value
throw new UnsupportedOperationException("AES decryption is not possible with the generated hash value");
}
}
```
这个代码片段将输入字符串进行 SHA-256 哈希处理,然后使用 Base64 编码将哈希值转换为字符串。最后,它返回编码字符串的前15个字符。请注意,由于哈希算法是单向的,因此无法使用该哈希值进行 AES 解密。如果您需要 AES 解密,则应使用对称加密算法(如 AES)而不是哈希算法。
阅读全文