注册 登录
编程论坛 ASP.NET技术论坛

在C#中较常使用的是MD5加密算法

xinzhe 发布于 2008-06-30 11:34, 1956 次点击
对密码进行加密的算法有很多种,在C#中较常使用的是MD5加密算法。它是一种用于产生数字签名的单项散列算法,具体代码如下:



public string Encrypt(string strPwd)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] data = System.Text.Encoding.Default.GetBytes(strPwd);//将字符编码为一个字节序列
        byte[] md5data = (data);//计算data字节数组的哈希值
        md5.Clear();
        string str = "";
        for (int i = 0; i <md5data.Length-1; i++)
        {
            str += md5data[i].ToString("x").PadLeft(2,'0');
        }
        return str;
    }
   注意:在编码之前应先引入命名空间System.Security.Cryptography。而且始用散列算法对原始密码加密后无法再恢复。这也是MD5加密算法的一个蔽端。
8 回复
#2
贝蕾2008-06-30 13:42
md5加密是目前最常用的加密方法,但是却不是c#中的最常用的加密方面,并且楼主并没有发md5文件。。。。。。。。
#3
yms1232008-06-30 15:43
md5算法在中被微软内置到了.NET Frameworks的框架里,所以在.NET里使用md5并不需要ASP代码里的那个很长的编码表,因为被内置好了。
#4
qGemini2008-06-30 17:24
md5严格来说不是加密算法
#5
雪雨星风2008-08-07 11:03
怎么才能做到尽可能完善的加密啊
#6
yms1232008-08-07 11:07
MD5加密后无法再恢复并不是什么弊端,因为有解密方法的密码加密算法都是不安全的,最安全的密码加密算法是无法解密的。
#7
luoweihua72008-08-22 16:14
string pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tbx_pwd.Text.Trim(), "md5");

直接的出来的string就是md5加密过的东西了
#8
tomtory2008-08-22 17:31
[bo][un]雪雨星风[/un] 在 2008-8-7 11:03 的发言:[/bo]

怎么才能做到尽可能完善的加密啊



不可能存在完善的加密方法

最多你只能复杂性的加密

比如可以先 将密码序列化  在将序列化的密码对称加密  在将对称加密过的密码MD5加密
但是都不完善
#9
球球2008-08-23 17:51
在C#里我也经常用SHA1啊
1