前言
在平时工作的时候,经常用到一些加解密算法,刚好近来比较有时间,就简单小结了下。
注:转载请附上本文链接: http://linianjian.cn/2016/03/07/symmetric-cryptography/ .
本文将对常用的对称加密算法进行一些简单的整理,也算是知识的简单积累,
对称加密算法简介对称加密算法,属于加解密算法中的一种,它使用同一组密钥进行加密和解密,如下图所示:
对称加密算法的有点在于:计算速度较快,可以用于大数据的加解密。
由于对称加密算法使用的同一组密钥进行加密、解密,因此如何保证密钥的安全性(不被第三方获取),这就是个问题。
常见的对称加密算法比较常用的对称加解密算法有:DES、3DES、AES等。
DES算法DES(Data Encryption Standard),它是IBM公司于1975年研究成功并公开发表的。
DES算法的入口参数有三个:Key、Data、Mode。
Key: 8个字节共64bit,其中56bit有效位和8bit校验位,是DES算法的工作密钥; Data: 8个字节64位,是要被加密或被解密的数据, 如果加密数据长度大于8字节,则可以选用 ECB/CBC 组合模式进行加解密; Mode为DES的工作方式,有两种:加密或解密。DES算法的原理,可以参考文尾的链接。
通常使用DES算法进行加密的数据都大于8个字节,需要使用有一些常用的DES加密组合模式:ECB、CBC
ECB模式最简单的加密模式即为电子密码本(Electronic codebook,ECB)模式,需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。
ECB模式应该是最简单的加密组合。
CBC模式 3DES算法 AES 算法 参考链接 维基百科: Symmetric-key algorithm Cryptography : Symmetric Encryption by Symmetric Algorithm Classes Part 1 常用加密算法的Java实现总结(二)――对称加密算法DES、3DES和AES DES加密算法原理简析 维基百科:块密码的工作模式