日期:2008-08-16  浏览次数:20484 次

/******雪龙原创*******/
//版权所有,末经作者同意不得转载

今天的实验还是比较顺利的,早上正则表达式用得很爽,晚上的MD5和SHA1加密也是没什么难度就用上了,下面是实验总结(洗衣机在洗衣服,趁机上网写点东西)。


  先补充点加密知识:MD5和SHA1都是散列加密技术,所谓的散列加密就是无论你的输入字符串是什么,有多长,加密后都变成唯一的定长的加密串,MD5加密后的密串长度有16位的和32位两种,SHA1我今天数了一下有40位,这种加密方式的特点是加密方式是公开的,但你不能逆推,要破解只能穷举,难度好大的,理论上8位的密码组合有(26字母+10数字+21常用英文符号)的8次方种可能,以现在的比较好的机器机器要算上一年多。不过最近MD5听说被破解了,能很快碰撞到密码,不过破解机还没有流传出来,一般应用还是可以的,SHA1就相对要安全一点。

散列加密,用函数表示是这样的y=f(x),x是输入的字符串,f是算法,y是加密后的密串,f是公开的,号称唯一的x只对应唯一的y,x只有用户知道,所以y是唯一的,现在破解的MD5就是发现了有几个x可以对应y,而且从y可以很快地找到x。

加密技术流行的还有用于身份验证的公钥加密,有兴趣的朋友可以参考相关的加密书籍。

C#中使用MD5非常简单,使用下面的静态方法:
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(temp_str, "MD5");
就可以得到加密后的字符串了,该静态方法很简单,temp_str就是你要加密的字符串变量,"MD5"表示使用MD5加密,如果用"SHA1",就是用SHA1加密了,够easy吧,赶快把你的密码验证加密吧。

从上面我们可以体会到,C#真不愧是MicroSoft的镇山之宝,提供的命名空间涵盖了我们常用的方方面面,你还等什么,快来和我一起学C#吧。

前段时间一直在研究C#中WinForm的自定义控件的使用,现在已经可以自己写自定义控件了,觉得它的代理机制和订阅机制还是很不错的,接下来就想把这部分的知识用在ASP.NET中,看看Web自定义控件的使用情况是如何的,如果你也想知道,请期待我的下一篇报告吧!