【发布时间】:2016-12-13 22:00:46
【问题描述】:
Cipher cipher = Cipher.getInstance("AES/CFB128/NoPadding");
SecretKeySpec keySpec = new SecretKeySpec("1234567890123456".getBytes(), "AES");
byte[] iv = "1234567890123456".getBytes();
cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(iv));
Cipher decryptCipher = Cipher.getInstance("AES/CFB128/NoPadding");
decryptCipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(iv));
byte[] data = cipher.doFinal("1234567890123456".getBytes());
for (byte b : data) {
byte[] output = decryptCipher.update(new byte[]{b});
System.out.println(new String(output));
}
我使用 JCE 解密一些使用 AES_128_CFB 加密的数据,但我发现 decrycipher.update 会在前 15 次返回一个空数组。 decryptCipher 的块大小为 16。CFB 密码应该在流模式下工作吗?我在 golang 中重新测试了这段代码,它工作正常。
【问题讨论】:
标签: java encryption cfb-mode