簡體   English   中英

如何對`string.Empty`進行哈希處理?

[英]How can `string.Empty` be hashed?

出於某種原因,這對我來說沒有意義。 如何是一個空string時,有沒有散列char ,單位為s string哈希?

我所說的將是這樣的:

System.Web.Helpers.Crypto.HashPassword(string.Empty);

這怎么可能?

來自MSDN

密碼哈希是使用RFC 2898算法使用128位鹽,256位子密鑰和1000次迭代生成的。 生成的哈希字節流的格式為{0x00,salt,subkey},在返回之前進行base-64編碼。

首先,您需要了解RFC 2898的工作原理 簡而言之,它將salt與傳入的密碼相結合,對其進行多次哈希處理,並生成一個字節流,您可以根據需要讀出多個字節。

使用上面引用的文檔,我們看到它選擇128位大的隨機鹽,使用1000個哈希值,並在末尾從流中拉出256位。

因此我們可以將字符排除,因為RFC 2898允許您從函數的輸出中獲取所需的字節數,它不是固定輸出。 如果我們調用Crypto.HashPassword(string.Empty);我們也會獲得不同的輸出Crypto.HashPassword(string.Empty); 兩次因為它每次調用函數時都會選擇一個新的隨機鹽。

暫無
暫無

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

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