MD5加密是用于储存用户密码在数据库时所用的一种加密技术,防止数据在被攻破的时候,数据库中密码字段因明文存储所导致的信息泄露。
(还有我自己的一点点理解是也有助于防止SQL注入式的BUG,就是在密码输入框输入类型 or 1=1 所谓的万能密码)
MD5在.NET中是一个 抽象类 无法用new的方法创建对象,但是有create的方法创建。
110行创建了一个MD5对象
113行将传入的密码转换成字节数组 可以是要存入数据库的密码,也可以是输入的密码。
115行通过调用 ComputeHash方法 可以将字节数组转化成MD5加密后的字节数组
118-124 通过一个循环,将加密后的字节数组转成string类型 并返还。
注意 117行的那种写发 返还的值是不对的
因为将一个字节数组转成字符串理论上有3种方式
1 就是117行的方式 将每一个元素按照指定的格式解析字符串
2 直接将数组tostring
3将数组中每个元素tostring
1和3 的区别在于
例如
a 的ASCII码是
97
如果字节数组是 97979797 按照1的方式 拿到的值就是aaaa
但是按照3的方式就是 97979797
而MD5加密 要的就是加密后最原始的字符 所以 用第3种方式
还有就是122行的 .toString("x2") 是一种字符显示格式的规范
ToString()可空参数单独使用,同时可以加一个格式化参数,具体方式如下:
1. 取中文日期显示_年月 currentTime.ToString("y"); 格式:2007年1月
2. 取中文日期显示_月日 currentTime.ToString("m"); 格式:1月30日
3. 取日期显示_年月日 currentTime.ToString("d"); 格式:2007-1-30
4. 取日期显示_时分 currentTime.ToString("t"); 格式:15:35
5. Int32.Parse(变量) Int32.Parse("常量") 字符型转换 转为32位数字型
6. 变量.ToString() 字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039
7. 变量.ToString("yyyyMMdd") ; 格式:20070101
8.变量.ToString(".00") ; 格式:*.??