import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.Key;
public class EncryptionExample {
public static void main(String[] args) {
try {
String originalText = "我是需要加密的字符串";
// 密钥,需要保密
String key = "mysecretkey";
// 创建加密算法实例
Cipher cipher = Cipher.getInstance("DES");
// 准备密钥
Key secretKey = generateKey(key);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
// 加密原始文本
byte[] encryptedBytes = cipher.doFinal(originalText.getBytes());
// 将加密后的字节写入二进制文件
try (FileOutputStream fos = new FileOutputStream("encrypted.bin")) {
fos.write(encryptedBytes);
System.out.println("Encryption completed.");
}
// 从二进制文件中读取加密的字节
byte[] readBytes;
try (FileInputStream fis = new FileInputStream("encrypted.bin")) {
readBytes = fis.readAllBytes();
}
// 创建解密算法实例
cipher.init(Cipher.DECRYPT_MODE, secretKey);
// 解密字节
byte[] decryptedBytes = cipher.doFinal(readBytes);
String decryptedText = new String(decryptedBytes);
System.out.println("Decrypted text: " + decryptedText);
} catch (Exception e) {
e.printStackTrace();
}
}
private static Key generateKey(String key) throws Exception {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
DESKeySpec keySpec = new DESKeySpec(key.getBytes());
return keyFactory.generateSecret(keySpec);
}
}
java使用DES加密算法对Byte[]/字符串进行加密以及解密
于 2023-08-22 12:21:45 首次发布