java 字符串加密解密常见方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java 字符串加密解密常见方法
在Java中,我们经常需要对字符串进行加密和解密操作以确保数据的安全性。
下面我将介绍一些常见的字符串加密和解密方法。
1. 使用Base64编码:Base64是一种常用的编码方式,它可以将任意二进制数据编码为纯文本字符串。
在Java中,可以借助Java提供的Base64类对字符串进行加密和解密操作。
例如:
```java
import java.util.Base64;
public class Base64Util {
// 字符串加密
public static String encrypt(String str) {
byte[] bytes = str.getBytes();
byte[] encodedBytes = Base64.getEncoder().encode(bytes);
return new String(encodedBytes);
}
// 字符串解密
public static String decrypt(String str) {
byte[] bytes = str.getBytes();
byte[] decodedBytes = Base64.getDecoder().decode(bytes);
return new String(decodedBytes);
}
}
```
2. 使用AES算法:AES(Advanced Encryption Standard)是一种对称加密算法,它可以对数据进行加密和解密。
在Java中,可以使用javax.crypto包提供的类来实
现AES加密和解密。
例如:
```java
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class AESUtil {
// 生成AES密钥
private static SecretKeySpec generateKey(String key) throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
SecretKey secretKey = keyGenerator.generateKey();
byte[] encodedKey = secretKey.getEncoded();
return new SecretKeySpec(encodedKey, "AES");
}
// 字符串加密
public static String encrypt(String str, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, generateKey(key));
byte[] encryptedBytes = cipher.doFinal(str.getBytes());
return new String(encryptedBytes);
}
// 字符串解密
public static String decrypt(String str, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, generateKey(key));
byte[] decryptedBytes = cipher.doFinal(str.getBytes());
return new String(decryptedBytes);
}
}
```
这是两种常见的字符串加密和解密方法。
根据你的需求选择适合的方法进行加密和解密操作。
记得在使用加密算法时,注意安全性并保管好密钥。