对称加密算法——DES,AES

Java
431
0
0
2022-04-23

对称加密算法

特点:

  • 加密与解密使用同一个密钥

常见对称加密算法:

  • DES data encryption standard 数据加密标准(已被破解,但是是其他对称算法的基石)
  • DESede 由DES对称加密算法改进后的一种对称加密算法,3重(处理速度慢、加密耗时,也不常用)
  • AES Advanced Encryption Standard 高级加密标准(DES的替代者,最常用)
  • PBE password Based Encryption 基于口令加密(对已知对称加密进行包装)
  • 一、DES:

对称加密算法——DES,AES

产生密钥

这里需要强调的是new SecureRandom(),是默认长度,init()方法中也可以直接放置数字如此处为56

对称加密算法——DES,AES

还原密钥(得到密钥类Key)

对称加密算法——DES,AES

通过密钥加密

这里需要说明一下的是,一般来说加密后的字符串使用Base64进行编码便于存储,或者使用URLBase64进行编码便于传输

对称加密算法——DES,AES

解密

对称加密算法——DES,AES

测试

这里说明一下就是,密钥可以使用给定的方法getKey()进行生成,也可以自己手动定义一串字符串如1234567890

对称加密算法——DES,AES

测试结果

二、AES

特点:

  • 密钥建立时间短、灵敏性好、内存需求低
  • 最常用的对称加密算法

实现方式

  • JDK(密钥长度有128,192,256三种选法,提供PKCS5Padding的填充模式)
  • Bouncy Castle(密钥长度有128,192,256三种选法,提供PKCS7Padding的填充模式)

对于AES的实现


就是把产生密钥的算法由DES更换为AES,加密的算法由DES/ECB/PKCS5Padding改为AES/ECB/PKCS5Padding就可以实现了,这里就不再进行累述,现在最常用的就是AES了,好了,到这里就结束了,希望对大家有所帮助。

对称加密算法——DES,AES