Java 实现密码加密和解密
时间: 2023-05-22 07:04:55 浏览: 152
java 实现加密解密
可以使用 Java 中的加密算法,如AES、DES等,对密码进行加密和解密。需要注意的是,在进行解密操作时,需要使用相同的密钥。以下是一个简单的示例代码:
加密:
```
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
public class EncryptUtil {
/**
* AES 加密
*
* @param content 待加密的字符串
* @param key 加密密钥
* @return 加密后的字符串
*/
public static String aesEncrypt(String content, String key) {
try {
// 初始化 KeyGenerator
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
// 生成随机密钥
SecretKey secretKey = keyGenerator.generateKey();
byte[] encodedKey = secretKey.getEncoded();
// 构造 SecretKeySpec
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
// 创建 Cipher 实例
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
// 用密钥初始化 Cipher 实例
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
// 执行加密操作
byte[] result = cipher.doFinal(content.getBytes());
return new String(result);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
```
解密:
```
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class DecryptUtil {
/**
* AES 解密
*
* @param content 待解密的字符串
* @param key 解密密钥
* @return 解密后的字符串
*/
public static String aesDecrypt(String content, String key) {
try {
// 构造 SecretKeySpec
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
// 创建 Cipher 实例
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
// 用密钥初始化 Cipher 实例
cipher.init(Cipher.DECRYPT_MODE, keySpec);
// 执行解密操作
byte[] result = cipher.doFinal(content.getBytes());
return new String(result);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
```
阅读全文