对称加密算法
特点:
- 加密与解密使用同一个密钥
常见对称加密算法:
- DES data encryption standard 数据加密标准(已被破解,但是是其他对称算法的基石)
- DESede 由DES对称加密算法改进后的一种对称加密算法,3重(处理速度慢、加密耗时,也不常用)
- AES Advanced Encryption Standard 高级加密标准(DES的替代者,最常用)
- PBE password Based Encryption 基于口令加密(对已知对称加密进行包装)
- 一、DES:
产生密钥
这里需要强调的是new SecureRandom(),是默认长度,init()方法中也可以直接放置数字如此处为56
还原密钥(得到密钥类Key)
通过密钥加密
这里需要说明一下的是,一般来说加密后的字符串使用Base64进行编码便于存储,或者使用URLBase64进行编码便于传输
解密
测试
这里说明一下就是,密钥可以使用给定的方法getKey()进行生成,也可以自己手动定义一串字符串如1234567890
测试结果
二、AES
特点:
- 密钥建立时间短、灵敏性好、内存需求低
- 最常用的对称加密算法
实现方式
- JDK(密钥长度有128,192,256三种选法,提供PKCS5Padding的填充模式)
- Bouncy Castle(密钥长度有128,192,256三种选法,提供PKCS7Padding的填充模式)
对于AES的实现
就是把产生密钥的算法由DES更换为AES,加密的算法由DES/ECB/PKCS5Padding改为AES/ECB/PKCS5Padding就可以实现了,这里就不再进行累述,现在最常用的就是AES了,好了,到这里就结束了,希望对大家有所帮助。