プログラム内の一部のデータを暗号化するために、次のコードの平和を使用しています。
cipher = Cipher.getInstance("AES/CBC/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(rawCipherKey, "AES"), new IvParameterSpec(rawCipherIV));
そして別の方法で:
try {
cipher.doFinal(buffer, 0, len, encryptedBuffer, 12);
} catch (Exception e) {
throw new RuntimeException(e);
}
doFinal が例外をスローしています。
java.lang.RuntimeException: javax.crypto.IllegalBlockSizeException: data not block size aligned
しかし、これは問題ではなく、その理由を理解しています。
データを暗号化するための次の指示があります。
データを暗号化しますが、完全な 16 バイト ブロックのみを使用し、残りは暗号化されません
別の方法があるかどうか誰が教えてくれますか。のために
Cipher.getInstance("AES/CBC/DO_PADDING_BUT_ONLY_16_BYTES_AND_LEAVE_REST_UNENCRYPTED");
またはどうすればこれを達成できますか?