我正在使用 CCCrypt
方法。
我可以使用比 128 位更长的 key 吗?可以任意长吗?还是 128 的倍数?
如果是这样,我该怎么做?
我认为这不可能,但我发现了这段文字:here
Some algorithms such as AES and RSA allow for keys of different lengths, but others are fixed, such as DES and 3DES. Encryption using a longer key generally implies a stronger resistance to message recovery. As usual, there is a trade off between security and time, so choose the key length appropriately.
AES 如何允许不同的长度,它会忽略高于 128 的位吗?
我正在为这个而烦恼。
最佳答案
AES(Advanced Encryption Standard)实际上是三种相关分组密码算法(或算法对,如果单独计算加密和解密的话)的集合。它们都适用于 128 位 block (16 字节)。
最常用的是 AES-128,它采用 128 位 key (即 16 字节)。 AES-192 采用 192 位 key (24 字节),AES-256 采用 256 位 key (32 字节)。
这三种算法的工作方式相似,但仍然不同(较长 key 的算法需要更长的时间,因为它们进行了更多“轮”的内部混淆操作,因此 key 的所有位都可以以某种方式影响所有位的密文)。因此,所有这些算法的所有这些 key 都以不同的方式加密和解密(即没有 AES-256 key 与 AES-128 key 执行相同的操作)。
也就是说,不幸的是,我不知道 CommonCrypto 库是否支持 AES 的所有变体,如果支持(我猜想),如何选择正确的变体。
关于ios - 对于使用 CCCrypt() 的 AES128, key 是否可以超过 128 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770424/