本文将详细介绍ASP.NET MD5和SHA1的加密方法。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。
MD5和SHA1的加密方法有哪些?我们先来看看什么是MD5。MD5的全称是Message-Digest Algorithm 5,由麻省理工学院计算机科学实验室的Ronald l. rivest和Rsa数据安全公司在20世纪90年代初开发,由md2、md3和md4发展而来。它的功能是在用数字签名软件签署私钥之前,将大容量信息“压缩”成安全格式(即把任意长度的字节串转换成一定长度的大整数)。无论md2、md4还是md5,都需要获取随机长度的信息,生成128位的信息摘要。
加密哈希函数将任意长度的二进制字符串映射为固定长度的小二进制字符串。加密散列函数具有这样的属性,在计算中不可能找到两个具有相同散列值的不同输入;也就是说,只有当相应的数据也匹配时,两组数据的哈希值才会匹配。数据的少量变化将导致哈希值的不可预测的变化。所以你很难从加密文本中找到线索。
什么是ASP.NET SHA1 sha1加密?SHA1的全称是安全散列算法。
MD5算法的哈希值为128位。而SHA1算法的哈希值是160位。两种算法都是不可逆的。
2004年8月17日,在美国加州圣巴巴拉举行的国际密码学大会(Crypto’2004)上,中国山东大学王小云教授作了关于MD5、HAVAL-128、MD4和RIPEMD算法解码的报告,并公布了MD系列算法的解码结果。宣告世界密码标准坚不可摧的MD5堡垒轰然倒塌,在密码学领域引起轩然大波。但我觉得这种加密安全性足够我们做普通软件了。
介绍了MD5和SHA1加密方法的概念。现在具体有哪些类?
我们通常使用最多的是加密用户密码,并将加密后的密码存储在数据库中。在比较密码时,我们对用户输入的密码进行加密,然后与数据库中的密文进行比较。至于如何在ASP.NET类中实现加密算法,我们不需要关心,只要使用就可以了。
以下是Asp.net的一些加密方法。有两种加密算法,即上面提到的MD5和SHA1。这里我就以MD5为例。SHA1大致相同,但使用的类别不同。
ASP.NET和SHA1加密的MD5相关类别:
系统。安全性。密码学。MD5
系统。安全性. cryptography . MD5 cryptoserviceprovider()
系统。web . security . formsauthentication . hashpasswordsforstoringconfigfile(strSource,' MD5 ')
MD5和SHA1加密的SHA1相关类别:
系统。安全性.密码学. SHA1
系统。安全性.密码学. SHA1CryptoServiceProvider()
系统。web . security . formsauthentication . hashpasswordsforstoringconfigfile(strSource,' SHA1 ')
方法如下:(使用vs2005)。
/**////summary///Method 1 :通过使用新运算符创建对象来返回16位加密结果/////summary//param name=' strsource '待加密明文/param///返回。结果采用32位加密结果的第9位到第25位/returnsppublicstringlet _ MD5 _ method 1(字符串strsource){//new system . security . cryptography . md5md 5=new system . security . cryptography . MD5 cryptocryptoserviceprovider();//获取机密文本节数组字节[]字节结果=
nbsp;md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource)); //转换成字符串,并取9到25位 string strResult = BitConverter.ToString(bytResult, 4, 8); //转换成字符串,32位 //string strResult = BitConverter.ToString(bytResult); //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉 strResult = strResult.Replace("-", ""); return strResult; } /**//// <summary> /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法,创建实现特定加密算法的对象。 /// </summary> /// <param name="strSource">需要加密的明文</param> /// <returns>返回32位加密结果</returns> public string Get_MD5_Method2(string strSource) { string strResult = ""; //Create System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); //注意编码UTF8、UTF7、Unicode等的选择 byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource)); //字节类型的数组转换为字符串 for (int i = 0; i < bytResult.Length; i++) { //16进制转换 strResult = strResult + bytResult[i].ToString("X"); } return strResult; } /**//// <summary> /// 方法三:直接使用HashPasswordForStoringInConfigFile生成 /// </summary> /// <param name="strSource">需要加密的明文</param> /// <returns>返回32位加密结果</returns> public string Get_MD5_Method3(string strSource) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5"); }
这些加密函数都是在服务器端执行,也就是说,当用户输入密码后,从客户端到服务器端传输时,用户的密码没有任何保护,很危险。银行的做法是在客户端安装ActiveX控件,在客户端就把一些重要信息进行加密,再发送。这个偶就不会拉,很希望能学习学习做这种ActiveX控件。
ASP.NET MD5和SHA1加密的基本情况就介绍到这里。
关于ASP.NET MD5和SHA1的加密方法是什么就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53560.html