VB、C#中SALT+SHA512密碼驗證

當鹽值(salt)是以Base64格式存儲的,而你需要將其用於生成SHA-512哈希時,首先你需要將Base64編碼的鹽值轉換回其原始的字節數組形式。然後,將這個字節數組與用戶的密碼(已轉換為字節數組)結合在一起,最後對結合後的字節數組進行哈希處理。

判斷使用哈希+鹽值加密的密碼是否正確

  1. 從資料庫中獲取用戶的鹽值和存儲的哈希值。
  2. 將提交的密碼與從資料庫中獲取的鹽值結合。
  3. 使用相同的哈希算法對結合後的密碼進行哈希處理。
  4. 比較新生成的哈希值與資料庫中存儲的哈希值。如果它們相等,則密碼正確;否則,密碼錯誤。

生成SALT,格式:Base64

生成HASH,演算法:SHA512

首先需將Base64編碼的鹽值轉換為字節數組(Byte)

C# 版本

VB.NET 版本

在這個方法中,base64Salt是Base64編碼的鹽值字符串。首先,我們使用Convert.FromBase64String(base64Salt)將其轉換成原始的字節數組形式。接著,我們創建一個新的字節數組combinedBytes來存放密碼字節數組和鹽值字節數組的結合。使用Buffer.BlockCopy方法將這兩個字節數組複製到combinedBytes中。最後,對這個結合後的字節數組進行SHA-512哈希處理,並將結果轉換為16進制字符串返回。

這樣處理後,即使鹽值是以Base64格式提供的,也能正確地結合鹽值和密碼進行哈希,從而保證了哈希過程的安全性和一致性。

回覆留言

Please enter your comment!
Please enter your name here