翻阅许多大神的博客,加上自己的总结,大体上了解了这几个加密算法的用途。 常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。
开发中常用的加密算法有MD5、AES、Base64、RSA等算法。
(1)MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。
应用场景:
- 一致性验证
- 数字签名:
- 安全访问认证:web开发中一般对密码都进MD5加密存在数据库中,然后将登录用户传入的密码进行MD5加密,然后与数据库中加密后的密码进行对比验证。
(2)AES即高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。对称加密算法也就是加密和解密用相同的密钥。通过相同的密钥先将明文数据加密后传输,然后接收方再通过这个密钥将将传过来的密文解密。AES加密解密速度快,实际中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到AES密钥,然后发送方和接收方用AES密钥来通信。
(3)Base64编码 用于将字节数组和字符串互相转换, Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据(或不可打印的字符串)。包括MIME的email,email via MIME, 在XML中存储复杂数据.
在url中的用途: 把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
(4)RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用,RSA既可以用于密钥交换,也可以用于数字签名,由于其加密解密速度慢,所以一般不用于数据传输。
数字签名:带有密钥(公钥,私钥)的消息摘要算法,用于验证数据的完整性 ,认证数据来源 ,抗否认。