首页 新闻 会员 周边

请教一个md5加密的问题

0
悬赏园豆:40 [已解决问题] 解决于 2010-08-06 18:59

在 mysql中遇到一个问题,字符串通过 md5加密后生成 了 64位的数字

如:

原始字符串:BW7RO8XQMTP2

加密后:3864363866646134313663343535386532656362336438393262656133613436

 

请问在.net 中如何实现 ?

敬请高手,留下代码。谢谢

sjh9的主页 sjh9 | 初学一级 | 园豆:4
提问于:2010-08-04 22:32
< >
分享
最佳答案
0

通常的MD532字符串和64位的字符串的比较,

 8   d   6   8   f   d   a   4   1   6   c    4  5   5    8  e    2   e   c   b   3  d   8   9   2   b   e   a   3   a   4   6
38 64 36 38 66 64 61 34 31 36 63 34 35 35 38 65 32 65 63 62 33 64 38 39 32 62 65 61 33 61 34 36

也就是按照 0 对应 30 ,1 对应 31 的顺序将原来的含字母的Hash值转换成不含字母的hash值.

收获园豆:40
Launcher | 高人七级 |园豆:45045 | 2010-08-05 10:16
public static string getMd5Hash(string input) { if (string.IsNullOrEmpty(input)) return string.Empty; MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); System.Diagnostics.Debug.WriteLine(string.Format("{0}:{1:X2}",data[i],data[i])); } data = Encoding.ASCII.GetBytes(sBuilder.ToString()); sBuilder = new StringBuilder(); for (int i = 0, j = data.Length; i < j; i++) { if (data[i] > 60) sBuilder.Append((data[i] - 36).ToString()); else sBuilder.Append((data[i] - 18).ToString()); } return sBuilder.ToString(); }
Launcher | 园豆:45045 (高人七级) | 2010-08-05 16:06
其他回答(1)
0

 public string Get_MD5_String(string strSource)
    {
        //new  
        MD5 md5 = new MD5CryptoServiceProvider();
        //获取密文字节数组
        byte[] bytResult = 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;
    }

转换得到的是32位的吧

JeffLiang | 园豆:43 (初学一级) | 2010-08-04 22:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册