import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class DESUtil {
// 加密
public static String encrypt(String data, String key) throws Exception {
byte[] keyBytes = getKeyBytes(key);
SecretKey secretKey = new SecretKeySpec(keyBytes, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(data.getBytes("UTF-8"));
return Base64.getEncoder().encodeToString(encryptedBytes);
}
// 解密
public static String decrypt(String encryptedData, String key) throws Exception {
byte[] keyBytes = getKeyBytes(key);
SecretKey secretKey = new SecretKeySpec(keyBytes, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
return new String(decryptedBytes);
}
// 生成密钥
public static byte[] getKeyBytes(String key) throws Exception {
return key.getBytes("UTF-8");
}
public static void main(String[] args) {
try {
String key = "mySecret";
String data = "Hello World!";
// 加密
String encryptedData = encrypt(data, key);
System.out.println("Encrypted Data: " + encryptedData);
// 解密
String decryptedData = decrypt(encryptedData, key);
System.out.println("Decrypted Data: " + decryptedData);
} catch (Exception e) {
e.printStackTrace();
}
}
}
jackiendsc
- 粉丝: 188
- 资源: 56