Đây là triển khai thực hiện của tôi về một mã hóa AES 256 và giải mã, phát triển với các thư viện nguồn gốc của JDK 5:AES mã hóa/giải mã với nhà cung cấp Bouncy Castle
public static String encrypt(String key, String toEncrypt) throws Exception {
Key skeySpec = generateKeySpec(key);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(toEncrypt.getBytes());
byte[] encryptedValue = Base64.encodeBase64(encrypted);
return new String(encryptedValue);
}
public static String decrypt(String key, String encrypted) throws Exception {
Key skeySpec = generateKeySpec(key);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decodedBytes = Base64.decodeBase64(encrypted.getBytes());
byte[] original = cipher.doFinal(decodedBytes);
return new String(original);
}
Tôi muốn thực hiện các phương pháp tương tự với Castle Boucy API (Java): Tôi đã tìm kiếm rất nhiều, thử nghiệm rất nhiều, không có kết quả ... ai đó có thể giúp tôi không?
Cảm ơn
Bạn nhận ra rằng bạn sẽ sử dụng cùng một API, nhưng chỉ là một nhà cung cấp khác phải không? Anyways, đọc [ở đây] (http://stackoverflow.com/questions/2435338/java-bouncy-castle-cryptography-encrypt-with-aes). – Perception
Lưu ý rằng AES256 bị tắt mặc định trong tất cả các phiên bản Java từ Oracle. Bạn phải cài đặt các tệp chính sách quyền hạn tài nguyên không giới hạn Java JCE (Java Cryptography Extension) cho Java 5. BTW: Java 5 đã lỗi thời và không an toàn. Không sử dụng nó nữa. – Robert
Tôi biết rằng Robert, cảm ơn. Nhận thức, tôi muốn sử dụng Lâu đài Boucny bởi vì nó dễ sử dụng hơn so với Java bản địa (chỉ từ JDK 6+) – fikouRaf