加密中间件对比
MD5
md5 不可逆的原因是由于它是一种散列函数,使用的是 hash(摘要)算法;
不过基于键值对的字典关系原理,有一些收集海量 md5 信息与摘要的数据库(如彩虹表),采用枚举法能够从 md5 值找到原文本信息。
解决方法:MD5加盐(随机盐)
每次保存密码到数据库时,都生成一个随机 16 位数字,将这 16 位数字和密码相加再求 md5 摘要,然后在摘要中再将这 16 位数字按规则掺入形成一个 48 位的字符串。
在验证密码时再从 48 位字符串中按规则提取 16 位数字,和用户输入的密码相加再 md5。按照这种方法形成的结果肯定是不可直接反查的,且同一个密码每次保存时形成的摘要也都是不同的。
具体实现:MD5加密+加盐
对称加密 和 非对称加密 算法
对称加密:DES,AES,3DES,IDEA等
加密和解密使用同一个秘钥。
非对称加密:RSA,ECC等
采用两个密钥,公钥加密后只能用私钥解开,反过来也一样。
区别:
对称加密速度快。
非对称加密安全性能高。
所以一般使用非对称加密传递对称加密的密钥,然后使用对称加密来加密传递的数据。
AES(典型的对称加密算法):
DES 算法的替代者。
AES 支持三种长度的密钥:128位,192位,256位;
AES256 安全性最高,AES128 性能最高,本质原因是它们的加密处理轮数不同。
详情:什么是AES算法?
Encrypt 加解密:
EncryptionDLL.EncryptionService.EncryptString("周溪童");
EncryptionDLL.EncryptionService.DecryptString("2B97DE2B58ED4000");
数字证书:
防止中间人攻击
加密技术详情:C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS