Mam kilka bibliotek, C#, PHP i Androida, gdzie wszystkie one szyfrują/odszyfrowują ciąg znaków w ten sam sposób, więc wszystkie są ze sobą kompatybilne, tj. C# zapisuje i szyfruje dane do bazy danych i PHP może ją odszyfrować i zwrócić oryginalny ciąg znaków.AES-256 i PKCS7Padding nie powiedzie się w Javie
Teraz muszę zrobić to samo ze standardową aplikacją Java, więc wziąłem kod z mojej biblioteki Androida i potrzebowałem bibliotek, ale dostaję wyjątek. O ile mi wiadomo, kod nie był specyficzny dla Androida, więc nie powinien stanowić problemu.
Poniżej jest moja funkcja szyfrowania
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;
}
Kiedy zadzwonić Encryption.encrypt("myString");
pojawia się następujący wyjątek:
Encryption Exception: java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding
Jak powiedziałem ten kod działa poprawnie na Androida i nie należy dokonywać żadnych różnica, z której pochodzi.
Dziękujemy za pomoc.
UPDATE
znalazłem, że muszę PKCS5Padding zamiast 7, dzięki link na komentarz. Jestem teraz chociaż otrzymuję następujący wyjątek:
Encryption Exception: java.security.InvalidKeyException: Illegal key size
http://stackoverflow.com/questions/10193567/java-security-nosuchalgorithmexception-cannot-find-any-provider-supporting-eses – srkavin
Dzięki, gdy googlowałem, nic nie znalazłem, chociaż zmieniłem zdanie teraz mówi mi, że klucz jest nieprawidłowy rozmiar – Boardy
Będziesz potrzebować plików strategii JCE o nieograniczonej sile. http://deveshsharma.info/2012/10/09/fixing-java-security-invalidkeyexception-ilegal-key-size-exception/ – srkavin