【发布时间】:2020-07-26 08:21:21
【问题描述】:
我正在尝试实现 AES 256 位加密/解密算法。我意识到这个算法有多种模式。
https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html
Every implementation of the Java platform is required to support the following standard Cipher transformations with the keysizes in parentheses:
AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168)
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
但是在上面,我没有找到任何具有 256 位密钥的模式。我有什么误解吗?
【问题讨论】:
-
不清楚。你想使用这个库还是你想实现你的 AES?另外,为什么需要 Java 8?
-
@kelalaka 使用 Java 库实现 256 位密钥的 AES 加密解密。
-
我写了一个简短的答案,确实可能很长。有什么不清楚的,请指出。
-
文档指定了最小值。所有当前的 Java 版本都实现了超过最低要求,特别是使用 192 位和 256 位密钥以及 128 位实现 AES。
标签: java encryption aes