1. 程式人生 > >c#Md5 32位加密結果少了兩個0的原因

c#Md5 32位加密結果少了兩個0的原因

odin 轉換 字符 字節轉換 i++ 轉換成 class for hash

我們的:   e1adc3949ba59abbe56e57f20f883e
第三方的:e10adc3949ba59abbe56e057f20f883e

原因:

這個是很常見的錯誤,你字節轉換成字符串的時候要保證是2位寬度啊,某個字節為0轉換成字符串的時候必須是00的,否則就會丟失位數啊。不僅是0,1~9也一樣。

string GetMD5(string strText)
{
    string result = string.Empty;
    MD5 md5 = MD5.Create();
    byte[] s =     
    md5.ComputeHash(Encoding.UTF8.GetBytes(strText));
    
for (int i = 0; i < s.Length; i++) { result = result + s[i].ToString("x"); //x --->x2 } return result; }

c#Md5 32位加密結果少了兩個0的原因