中文md5加密不一致
A. 中文字元串C++MD5加密結果與PHP的加密結果不一致,怎麼辦
C++你用什麼存的中文?
用Char*的話,因為是單位元組,所以支持是有問題的應該
如果是CString的話,八成是編碼不統一導致的
B. md5加密java與ASP中文不一致
記事本打開所有文件,都另存為「utf-8」或都另存為「ANSI」格式的文件,只有編碼相同時,才能得到相同結果。如果一個是utf-8的文件,一個是ANSI的文件,他們倆對中文的位元組佔用不一樣,計算得到的結果也會不一樣。英文,數字,標點佔用的位元組一樣,所以得到相同結果。
C. 同樣的密碼經過MD5加密後的會不會不一樣
首先不同的語言的md5加密方式肯定是一樣的 使用C#的MD5加密時要注意幾點: 1.密碼是中文的:md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文")); 英文的要注意轉換字元集(對於常用的MS有點反了,反正針對密碼所用的字元集就行了) 2.如果要匹配資料庫的密碼,sql的md5加密是補足位數的,而網上的演算法沒有做這件事,所以經常會出現少幾位的情況,而且少的幾位肯定是「0」所以要注意補0,也就是ToString("X2") 貼一段代碼: static void Main(string[] args) { MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); byte[] hashedDataBytes; hashedDataBytes = md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文")); StringBuilder tmp = new StringBuilder(); foreach (byte i in hashedDataBytes) { tmp.Append(i.ToString("x2")); //就是這里的處理 } Console.WriteLine(tmp.ToString()); Console.Read(); }
D. Delphi的MD5演算法加密中文不正確,是啥原因
這種情況與語言用的漢字編碼(內碼)有關,看是UNICODE還是什麼其他編碼?windows版本不同用的編碼也不同,表面顯示的是「中國人」,其實內存中的二進制碼不同,算出來的MD5當然不同。
E. 我的MD5加密出來的怎麼不一樣
這是一個hash 演算法 如果結果不同,那應該是你實現出現了錯誤
F. JAVA md5加密 兩次不一致 中英文問號
把代碼發一下 。可能是編碼問題 也可能是位元組數組轉化字元串的問題
G. MD5加密 和 手打的 不一致
不是很明白你說的意思。在登錄頁百時為什麼要手動打MD5加密碼呢?
MD5加密的流程是這樣的:
注冊頁面:文本框輸入密碼,假設文本框名稱與資料庫欄位名均為"passwd「
保存數據:rs("passwd")=md5(trim(request.form("passwd")))
這樣保存在資料庫里的就不是你輸入的密碼,而是MD5加密碼了。
登錄頁面:文本框輸入密碼(是原密碼,不是MD5加密碼)
驗證頁面:passwd=md5(trim(request.form("passwd")))
if passwd=rs("passwd") then 通過
因此,無論是注冊還是登錄輸入的都是原密碼,而不是MD5碼,使用MD5加密的目的是為了防止資料庫被盜而導緻密碼泄露的漏洞。
如果你確實要手打的話,也是可以的,除非是大小寫不符或有空格等,有些字元還跟全形半形有關。
H. .net(md5)加密漢字的結果與java(md5)加密漢字的結果不一樣。。。
..仔細檢查一下軟體設置..
I. 為什麼同一個字元串,md5加密後的結果不一樣
那後面的符號好像是對象地址值,你把那兩行列印換成這個看看 System.out.println (new String(bytes)); System.out.println (new String(bytes2));
J. 不同的MD5加密軟體,加密相同的兩個漢字,結果不一樣啊。
應該是由於漢字編碼的問題。比如utf-8,utf-16,utf-32,gbk等