网址查询网站名称,公司网站数据库,rtk建站教程,网络域名地址块密码又称为分组加密#xff0c; 一次加密明文中的一个块。将明文按一定的位长分组#xff0c;明文组经过加密运 算得到密文组#xff0c;密文组经过解密运算(加密运算的逆运算),还原成明文组。这种加密算法共有四种操作 模式用于描述如何重复地应用密码的单块操作来安全的…块密码又称为分组加密 一次加密明文中的一个块。将明文按一定的位长分组明文组经过加密运 算得到密文组密文组经过解密运算(加密运算的逆运算),还原成明文组。这种加密算法共有四种操作 模式用于描述如何重复地应用密码的单块操作来安全的转换大于块的数据量分别是电子代码(ECB)、密码块链(CBC)、 密码反馈(CFB) 以及输出反馈(OFB)。 其 中ECB 模式下相同的明文块总是会得到相同的密文故不能抵挡回放攻击而 CBC 模式则没有这个缺陷。
对于避免使用不安全的操作模式的情况示例1给出了不规范用法(Java 语言)示例。示例2给出了规范用法(Java 语言)示例。
示例1:Cipher cipher Cipher.getInstance(AES/ECB/PKCS7Padding,BC);cipher.init(Cipher.ENCRYPT MODE,createSecretKey(seed));
以上代码将 AES 密码用于 ECB 模式。
加密大于块的数据时需要注意避免使用ECB 模式。由于 CBC 模式不会对相同的明文块生成相 同的密文块所以CBC 模式更好。然而CBC 模式效率较低并且在和 SSL 一起使用时会造成严重风 险。可以改用CCM(Counter with CBC-MAC)模式如果更注重性能在可用的情况下则使用GCM(Galois/Counter)模式。
示例2:Cipher cipher Cipher.getInstance(AES/CBC/PKCS7Padding,BC);cipher.init(Cipher.ENCRYPT MODE,createSecretKey(seed));
以上代码将 AES 密码用于CBC 模式。