ASP.NET中的MD5加密

新人冒泡,打今起在园子里算是开博了,先来写点关于基础性的东西 为之后的写其余的文章作准备。html

今天就先来讲说MD5加密与在ASP.NET中如何实现MD5加密。web

MD5加密简单的说就是把一段明文 经过某种运算方式 求出密文。例如:明文为:abcdefg 经过一些列运算 获得 密文 7ac66c0f148de9519b8bd264312c4d64数据库

它具备两个特性:1.无碰撞,2.不可逆。网站

无碰撞是指: 7ac66c0f148de9519b8bd264312c4d64 这段密文 只能由 abcdefg 这段明文获得,除此以外其余的 明文加密后 其值 绝对不会等于 7ac66c0f148de9519b8bd264312c4d64,也就是说 没有那两个明文 加密后 会获得相同的密文。加密

不可逆是指: 明文经过加密后获得密文,而没法经过密文 求出明文。也就是说 当咱们知道明文 adcdefg 能够经过加密获得 7ac66c0f148de9519b8bd264312c4d64,可是咱们若是知道 某段文字 加密后 获得7ac66c0f148de9519b8bd264312c4d64,却没法算出 7ac66c0f148de9519b8bd264312c4d64这段文字是由谁加密而来的。spa

 

那么有同窗必定会问,具体应该运用在什么地方?code

通常来讲 咱们在作网站登陆系统的时候 密码都是密文保存的,通常用的都是MD5加密。orm

用户在填写用户名 密码 点击注册以后,咱们验证经过,要把用户信息存入数据库的时候,就须要先把用户输入的密码,经过MD5加密的方式,把加密后的密文,存入密码的字段。htm

那么必定有同窗会细心的发现,刚刚还提到过 MD5加密是不可逆的,那么用户登陆的时候如何判断用户输入的密码是否正确的呢?blog

例如 用户设置的密码 为 abcdefg,而存储的时候 咱们存储的是 abcdefg加密过以后获得的值 7ac66c0f148de9519b8bd264312c4d64,那么用户再次登陆时 会输入密码abcdefg,咱们如何比较二者是否相等?

咱们没法经过 加密后的值换算出 加密前的值,所以 咱们一般的作法是,把用户再次登陆时 输入的密码 再次加密 和数据库中 存放的值进行比对,若是相等 则说明输入的密码正确。

 

OK,基本原理和运用场景基本说的差很少了,最后再来讲说 在ASP.NET中如何进行MD5加密。

在ASP.NET中MD5的加密方式很简单,代码以下:

 

 

1 FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();

 

须要注意的是,若是MD5加密的时候转换的是小写,那么在验证的时候也要转换成小写,保持统一。另外上述方式为32位的MD5加密方式,若是是16位的 则取32位加密结果的中间16位的值便可。

 

本文出自 低调码农的笔记簿 http://www.cnblogs.com/webconfig/articles/3620707.html 转载请注明出处,若有谬误不当之处,欢迎指正拍砖,不胜感谢!!

相关文章
相关标签/搜索