【发布时间】:2013-09-27 23:40:28
【问题描述】:
有很多关于 AES 的问题,但我有以下问题。 我目前正在使用以下 AES 实现来加密数据
byte [] PRFkey = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
byte [] plaintext = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
SecretKeySpec encryptionKey=new SecretKeySpec(PRFkey, "AES");
Cipher cipher=Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, encryptionKey);
byte[] encryptedData=cipher.doFinal(plaintext);
结果结果是 32 字节(256 位)。所以我使用的是 AES-256。这个实现对我来说太慢了。如何切换到 AES-128?我不需要任何填充或操作模式或密钥散列。
提前谢谢你。
【问题讨论】:
-
注意:为了遵守正常的 Java 命名惯例,
PRFkey不应以大写字母开头。这使它看起来像一个类型的名称。 -
不要将密钥长度与块大小混淆——AES-256 采用 256 位密钥,但其块大小为 128 位,就像 AES-128 一样。 AES 标准只定义了 128 位块大小,尽管原始 Rijndael 密码也定义了 256 位块大小。
标签: java encryption cryptography aes