1、加密算法:
- 移位、替代(古典加密)
- 对称加密:DES、AES
- 非对称加密:RSA
- 散列函数算法(单向加密):MD5、SHA、Mac
- 数字签名算法:RSA、DSA
其中,前三种主要完成数据的加解密;
散列函数类主要完成验证数据的完整性,防止消息在传递期间被篡改;
数字签名类:完成验证数据的完整性,对数据来源以及收发双方进行验证。
2、常用的加密工具
- JDK自带的安全类
- Bouncy Castle
- Commons Codec
在下面的章节里,会分别介绍上述所提出的各类加解密算法。
注意:本类博客主要参考于《Java加密与解密艺术(第2版)》与《大型分布式网站架构(设计与实践)》,更加详细的内容请参考这两本书。