我想知道这两种加密方法之间是否有任何区别?我之前从未使用过这些。我的客户要求我使用AES-128加密,但当我谷歌时,它会显示“aes-128-cbc”,“aes-128-ctr”,“aes-256-cbc”或“aes-256-ctr” “所以我想知道我应该使用哪一种,就像AES-128一样?
答案 0 :(得分:24)
3件事:
现在,您的客户端要求您使用AES-128加密。因此,您应该使用128位密钥大小的AES加密。您可以使用的任何模式都是您的首选。我更喜欢CBC。
答案 1 :(得分:16)
关于加拿大广播公司与欧洲央行的简短说明。使用ECB加密时,每128位(取决于块大小)数据都使用相同的密钥加密。如果明文中有任何模式,无论加密算法有多好,生成的加密文本也都是可预测的。
ECB:
example
I have a folder containing number of files with various names each
group of files begin with same 9 characters ex:
first group [HD9523587_352, HD9523587_258, HD9523587_785 ,HD9523587_473]
second group[Hip046329_258, Hip046329_364, Hip046329_681, Hip046329_235]
and so on
如果你使用CBC,第一个块与IV(初始化向量)进行异或,并用密钥加密,第二个块与第一个块进行异或,然后用密钥加密,第三个块用第二。由此产生的密码不易受频率分析的影响。
This image is taken from Wikimedia Commons, the free media repository
缺点是您无法并行化加密/解密,因为您需要前一个块的结果,因此它可能会更慢。但在实践中,它并没有什么不同。
答案 2 :(得分:3)
查看您所包含的链接,它表示它将接受多种不同的模式,包括CBC。除非您有特殊原因不使用它,否则请使用AES-128-CBC。 CBC模式是一种很好的通用模式。您还需要了解填充的使用(使用PKCS#5或PKCS#7,无论您的系统允许)和初始化矢量IV,以使CBC模式正常工作。
不要使用ECB模式,因为它不安全并且泄漏信息。
答案 3 :(得分:0)
此处aes-128-cbc
和aes-128
。 aes
代表高级加密服务,128
是比特率,CBC
是加密模式。
但是,这仅在OPEN SSL
格式中被引用和使用。在使用Open SSL之前,PHP使用的mcrypt_encrypt
设计不正确(旧版本的PHP)。
使用aes-128
时,rijndael
也可以被称为mcrypt
。