暗号化技術として AES を使用しています。暗号化された文字列を解読しているときに、これに直面していStringIndexOutOfBoundsException String index out of range : -3
ます。なぜ私がこれに直面しているのか教えていただけますか?私が使用したのは関連BASE64
するエンコーディングですか?
復号化のためのコード:
Key key = generateKey();
Cipher c = Cipher.getInstance(ALGO);
c.init(Cipher.DECRYPT_MODE, key);
String salt = "some salt";
String dValue = null;
String valueToDecrypt = encryptedData;
for (int i = 0; i < 2; i++) {
byte[] decordedValue = Base64.decodeBase64(valueToDecrypt);
byte[] decValue = c.doFinal(decordedValue);
dValue = new String(decValue).substring(salt.length());
valueToDecrypt = dValue;
}
暗号化のためのコード:
Key key = generateKey();
Cipher c = Cipher.getInstance(ALGO);
c.init(Cipher.ENCRYPT_MODE, key);
String salt = "some salt";
String valueToEnc = null;
String eValue = Data;
for (int i = 0; i < 2; i++) {
valueToEnc = salt + eValue;
byte[] encValue = c.doFinal(valueToEnc.getBytes(UNICODE_FORMAT));
eValue =new String(Base64.encodeBase64(encValue));
}
参考:http ://www.digizol.com/2009/10/java-encrypt-decrypt-jce-salt.html