的前10個字符生成密鑰比方說,我有一個Base64編碼字符串:從Base64編碼字符串
data = AOUTl5C2QV2xFRPlzKR0Ag==
我想生成該Base64編碼字符串的前10個字符中的Java(Android版)密鑰然後將其用於AES解密從服務器發送的消息。要做到這一點,我用下面的代碼:
String firstTen = data.substring(0, 10);
byte[] decodedBytes = Base64.decode(firstTen, Base64.DEFAULT);
SecretKeySpec key = new SecretKeySpec(decodedBytes, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] original = cipher.doFinal(Message_to_Decrypt, Base64.DEFAULT));
但我可以一Java.security.Exception:
java.security.InvalidKeyException: Key length not 128/192/256 bits.
有沒有一種方法,我可以得到一個有效的密鑰,我可以使用從Base64String的前10個字符進行AES解密?
Base64是什麼類?在java.util.Base64或org.apache.commons.codec.binary.Base64中沒有Base64.DEFAULT。 – gfelisberto
我在Android中執行此操作 – Gravity
developer.android.com/reference/android/util/Base64.html – Gravity