Tôi có một vài thư viện, C#, PHP và Android, tất cả đều mã hóa/giải mã chuỗi theo cùng một cách để chúng tương thích với nhau, nghĩa là C# ghi và mã hóa dữ liệu vào một cơ sở dữ liệu và PHP có thể giải mã thành công nó và trả về chuỗi gốc.AES-256 và PKCS7Padding không thành công trong Java
Tôi bây giờ cần phải làm điều tương tự với một ứng dụng Java chuẩn, vì vậy tôi đã lấy mã từ thư viện Android của tôi và cần thư viện nhưng tôi nhận được một ngoại lệ. Theo như tôi biết mã không phải là Android cụ thể vì vậy nó không phải là một vấn đề.
Dưới đây là chức năng mã hóa của tôi
public static String encrypt(String plainPasword)
{
String password = "";
try
{
SecretKeySpec key = new SecretKeySpec("hcxilkqbbhczfeultgbskdmaunivmfuo".getBytes("US-ASCII"), "AES");
IvParameterSpec iv = new IvParameterSpec("ryojvlzmdalyglrj".getBytes("US-ASCII"));
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
byte[] encoded = cipher.doFinal(plainPasword.getBytes());
password = new String(Base64.encodeBase64(encoded));
}
catch (Exception ex)
{
System.err.println("Encryption Exception: " + ex.toString());
}
return password;
}
Khi tôi gọi Encryption.encrypt("myString");
tôi nhận được ngoại lệ sau đây:
Encryption Exception: java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding
Như tôi đã nói mã này đang làm việc tốt trên Android và nó không nên thực hiện bất kỳ sự khác biệt nơi nó đang chạy.
Cảm ơn bạn đã trợ giúp bạn có thể cung cấp.
CẬP NHẬT
tôi thấy rằng tôi cần PKCS5Padding thay vì 7 nhờ vào một liên kết trên một nhận xét. Hiện tại, tôi nhận được ngoại lệ sau:
Encryption Exception: java.security.InvalidKeyException: Illegal key size
http://stackoverflow.com/questions/10193567/java-security-nosuchalgorithmexception-cannot-find-any-provider-supporting-aes – srkavin
cám ơn khi tôi googled tôi không tìm thấy bất cứ điều gì mặc dù bây giờ mà tôi đã thay đổi nó bây giờ nói với tôi rằng chìa khóa là một kích thước không hợp lệ – Boardy
Bạn sẽ cần các tệp chính sách JCE sức mạnh không giới hạn. http://deveshsharma.info/2012/10/09/fixing-java-security-invalidkeyexception-illegal-key-size-exception/ – srkavin