我想知道这两种加密方法有什么区别吗?我以前从未使用过这些。我的客户要求我使用 AES-128 加密,但是当我用 Google 搜索时,它显示“aes-128-cbc”、“aes-128-ctr”、“aes-256-cbc”或“aes-256-ctr” " 所以我想知道我应该使用哪一个会像 AES-128?
参考链接:这是我必须发送加密方法的地方
我想知道这两种加密方法有什么区别吗?我以前从未使用过这些。我的客户要求我使用 AES-128 加密,但是当我用 Google 搜索时,它显示“aes-128-cbc”、“aes-128-ctr”、“aes-256-cbc”或“aes-256-ctr” " 所以我想知道我应该使用哪一个会像 AES-128?
参考链接:这是我必须发送加密方法的地方
3件事:
现在,您的客户要求您使用 AES-128 进行加密。因此,您应该使用 128 位密钥大小的 AES 加密。您可以使用的任何模式都将是您的偏好。我更喜欢CBC。
只是关于 CBC 与 ECB 的快速说明。当您使用 ECB 加密时,每 128 位(取决于块大小)的数据都会使用相同的密钥进行加密。如果明文中有任何模式,那么无论加密算法有多好,生成的加密文本也将是可预测的。
欧洲央行:
Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
---------------- ---------------- ----------------
Encrypted: bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
如果使用 CBC,则第一个块与 IV(初始化向量)进行异或并使用密钥加密,第二个块与第一个块进行异或,然后使用密钥加密,第三个使用第二个。这样得到的密码就不太容易受到频率分析的影响。
此图像取自免费媒体存储库 Wikimedia Commons
缺点是您无法并行化加密/解密,因为您需要前一个块的结果,因此它可能会更慢。但在实践中,它并没有真正的区别。
查看您包含的链接,它说它将接受多种不同的模式,包括 CBC。除非您有特定的理由不使用它,否则请使用 AES-128-CBC。CBC模式是一种很好的通用模式。您还需要了解填充(使用 PKCS#5 或 PKCS#7,无论您的系统允许使用哪个)和初始化向量 IV,以使 CBC 模式正常工作。
不要使用 ECB 模式,因为它不安全并且会泄露信息。
这里aes-128-cbc
和aes-128
。aes
代表高级加密服务,128
是比特率,CBC
是加密方式。
但是,这仅在OPEN SSL
格式中被引用和使用。在 Open SSL 之前,使用mcrypt_encrypt
的 PHP 设计不正确(旧版本的 PHP)。
使用aes-128
时也可以参考。rijndael
mcrypt