Android程序员 2016-10-27
信息加密技术:
1、单向散列加密
通过对不同输入长度的信息进行散列计算,得到固定长度的输出信息。
单向,即不能对输出信息继续计算而获得输入信息。
特点:输入的任何微小变化都会导致输出完全不同。
算法:MD5、SHA
使用场景:
用户密码加密,salt+MD5。
生成信息摘要
2、对称加密
加密和解密使用同一个密钥
对称,可相互推算
优点:算法简单、效率高、开销小、适合大量数据加密
缺点:如何安全交互密钥
算法:DES、RC
使用场景:
Cookie加密
通信加密
备注:传统、最常用、绝大多数场合
3、非对称加密
使用公钥加密的必须私钥才能解开。
使用私钥加密的必须公钥才能解开。
算法:RSA
使用场合:
信息安全传输(公钥加密,私钥解密)
数字签名(私钥加密,公钥解密)
HTTPS传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公钥
4、实际应用
对称加密、非对称加密混合使用步骤:
1、使用非对称加密技术对“对称密钥”进行安全传输(有时两次非对称加密)
2、使用对策加密技术进行“信息”加解密。
密钥安全管理:
不推荐:密钥存放位置有源文件、配置文件。
推荐:
1、密钥和算法放在一台独立服务器,专人维护,对外提供加密解密服务(成本高、系统性能开销大)
2、算法放应用系统,密钥放独立服务器,分片存储。应用程序通过从密钥服务器获取密钥,并缓存在本地,对外提供加密解密接口。
3、算法放应用系统,密钥放数据库,开发、测试、生产环境使用不用的密钥。(个人应用实践)