对称加密算法
在对称加密算法中,数据发送方将明文。(原始数据)和加密密钥一起经过特殊加密算法处理后,生成复杂的加密密文进行发送,数据接收方收到密文后,若想读取原文,则需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密,这就要求加密和解密方事先都必须知道加密的密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。优势在于加解密的高速度和使用长密钥时的难破解性,但是,对称加密算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对加密的密文进行解密,因此密钥的保护对于加密信息是否安全至关重要。
常用的对称加密算法包括DES算法、3DES算法、AES算法等。
1.DES算法
DES算法属于对称加密算法,明文按64位进行分组,密钥长64位,但事实上只有56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)'分组后的明文和56位的密钥按位替代或交换的方法形成密文。
由于计算机运绊能力的增强,原版DES密码的密钥长度变得容易被暴力破解,因此演变出3DES算法。3DES是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行3次加密,是DES的一个更安全的变形。
通过KeyGenerator获取密钥生成器的实例后,设置DES算法的密钥为56位,便可生成DES算法的密钥,并且每次生成的都不相同。为了方便存储,将得到的 DES 密钥 Base64 编码成字符串。而将相应密钥字符串转换成SecretKey对象,只需要将密钥Base64解码后,传入对应的算法后实例化一 个 Secret KeySpee即可。
- AES算法
.AES20的全称是 A dvanced Encryption Standard, 即高级加密标准,该算法由比利时密码学家Joan Daemen和Vincent Rijmen设计,结合两位作者的名字,又称Rijndael加密算法,是美国联邦政府采用的一 种对称加密标准,这个标准用来替代原先的 D ES 算法,已经广为全世界所使用,已成为对称加密算法中最流行的算法之一 。
AES算法作为新一 代的数据加密标准,汇聚了强安全性、高性能、高效率、易用和灵活等优点,设计有三个密钥长度(128、192、256位),比DES算法的加密强度更高,更为安全。
与DES算法的操作类似,才、同的是AES算法支待128、192、256三种密钥长度,加密强度更高。
摘自:
《大型分布式网站架构设计与实践》 阅读笔记