簡體   English   中英

md5哈希是否一致或服務器依賴的結果?

[英]Is the result of a md5 hash consistant or server dependent?

我正在做一個md5哈希,只是想確保結果:

md5.ComputeHash(bytePassword);

無論服務器是否一致?

例如Windows 2003/2008和32/64位等。

是的,它是一致的, md5算法規范定義它,無論平台如何。

MD5獨立於操作系統和體系結構。 所以它是“一致的”。

但是 ,MD5將任意比特序列作為輸入,並輸出128比特的序列。 在許多情況下,您需要字符串。 例如,您希望哈希密碼,密碼最初是一個字符串。 將該字符串轉換為位序列不是MD5本身的一部分,並且存在若干約定。 String.getBytes()知道C#,但Java等效的String.getBytes()方法將使用“platform default charset”,它可能隨操作系統安裝而變化。 類似地,MD5的輸出通常轉換為具有十六進制表示法的字符串,並且可以是大寫或小寫或其他。

因此,雖然MD5本身是一致的,但是在為MD5准備數據並對其輸出進行后處理的部分中經常會出現錯誤。 謹防。

md5哈希的結果是一個數字。 無論您使用何種服務器甚至平台,給定輸入返回的數字始終相同。

但是,數字的表達可能會有所不同。 例如, 11.0是相同的數字,但表達方式不同。 類似地,某些平台將返回與其他平台略有不同的哈希格式。 在這種情況下,你有一個字節數組,這應該是相當安全的傳遞。 將它轉換為字符串后要小心。

MD5 Hashing是[系統/時間/除輸入之外的任何東西]獨立

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM