10.0 加密Encrypt
1:MD5 不可逆加密
2:Des对称可逆加密
3:RSA非对称可逆加密
4:数字证书 SSL
MD5的用途
1 防篡改:
发个文档,事先给别人一个MD5,是文档的摘要,
源代码管理器svn--即使电脑断网了,文件有任何改动都能被发现
--本地存了一个文件的MD5--文件有更新,就再对比下MD5
急速秒传--扫描文件的MD5--跟已有的文件MD5比对--吻合表示文件已存在不用再上传
2 密码保存,防止看到明文
密码应该只有用户知道----数据库不能存明文---但是又需要验证
MD5加密下原始密码---数据库存密文---下次登录把密码MD5后再比对
密文是可见的,所以要求密码不能太简单,加盐(123456+密文)
3 防止抵赖,数字签名
把一些内容摘要一下,由权威的第三方去保障,将来这个文件就是你做的,不能抵赖
Des:
对称可逆加密:加密后能解密回原文,加密key和解密key是一个
加密算法都是公开的,密钥是保密的, 即使拿到密文 你是推算不了密钥 也推算不了原文
加密解密的速度快,问题是密钥的安全.
RSA:
非对称可逆加密:加密后能解密回原文,加密key和解密key不是一个,而是一对算法是公开的,加密key和解密key是不能互相推导的 有了密文,没有解密key,也推导不出原文。
加密解密速度不快 安全性好
公开加密key,保证数据的安全传递
公开解密key,保证数据的不可抵赖
公钥就是公开的key 私钥就是不公开的key
C#内置实现了公钥加密 私钥解密;想换需要用第三方的DLL-BouncyCastle