ECB模式是简单的加密模式,明文数据被分成固定大小的块,并且每个块被单独加密,每个块的加密和解密都是独立的,且使用相同的方法进行加密,所以可以进行并行计算,这种模式下有一个块被破解了,用相同的方法就可以破解其他块得到明文数据。安全性比较差,适用于数据较少的情形,加密前需要把明文数据填充到块大小的整数倍
go接口中不提供该模式3.04
总结:
CBC模式中每个分组要先和前一个分组加密后的数据进行异或运算,然后再进行加密,第一个数据块进行加密之前需要使用初始化向量IV进行异或运算。CBC模式是一种最常用的加密模式,它主要缺点是加密是连续的,不能并行处理,并且与ECB一样消息块必须填充到块大小的整数倍
总结:
CFB模式中,前一个分组的密文加密后和当前分组的明文进行异或运算生成当前分组的密文,第一步对初始化向量进行加密,并且该模式不需要进行数据填充,不需要填充的还有后面说到的OFB模式和CTR模式
总结:
在OFB模式中,密码算法的输出会反馈到密码算法的输入中,即上一个密码算法的输出是当前分组密码算法的输入。OFB模式并不通过密码算法对明文直接进行加密,而是通过明文分组和密码算法的输出进行异或来产生密文分组的,在这一点上OFB和CFB模式非常相似
总结:
CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码,最终的密文分组是通过将计数器加密得到的比特序列,与明文分组进行异或而得到的
总结:
原文:https://www.cnblogs.com/ipython258/p/14802851.html