aes-128-cbc和aes-128加密有什么区别吗?

时间:2015-10-14 09:31:49

标签: php encryption zencoder

我想知道这两种加密方法之间是否有任何区别?我之前从未使用过这些。我的客户要求我使用AES-128加密,但当我谷歌时,它会显示“aes-128-cbc”,“aes-128-ctr”,“aes-256-cbc”或“aes-256-ctr” “所以我想知道我应该使用哪一种,就像AES-128一样?

参考链接:this is where I have to send encryption method

4 个答案:

答案 0 :(得分:24)

3件事:

  • AES:高级加密标准。这是加密算法的名称(对称加密)。其他对称加密算法有:DES,3-DES等。
  • 128:这可能是指密钥大小。 AES加密使用3种密钥大小(128位,192位和256位)。 AES中的块大小也是128位。
  • CBC:这是您想要的加密模式。有许多加密模式,这取决于您希望算法运行的速度,并行度和安全级别。一些模式是CBC(密码块链接),ECB(电子密码本),CFB(密码反馈),CTR(计数器)等。

现在,您的客户端要求您使用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(初始化向量)进行异或,并用密钥加密,第二个块与第一个块进行异或,然后用密钥加密,第三个块用第二。由此产生的密码不易受频率分析的影响。 CBC Encryption mode

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-cbcaes-128aes代表高级加密服务,128是比特率,CBC是加密模式。

但是,这仅在OPEN SSL格式中被引用和使用。在使用Open SSL之前,PHP使用的mcrypt_encrypt设计不正确(旧版本的PHP)。 使用aes-128时,rijndael也可以被称为mcrypt