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格式提供的,也能正確地結合鹽值和密碼進行哈希,從而保證了哈希過程的安全性和一致性。

前一篇文章資安密碼工程,SALT最佳策略,採用BASE64 或 HEX?
下一篇文章資訊安全,帳號登入,OTP(One Time Password) 的最佳實踐策略
學經歷 淡江大學資訊管理研究所 諸銘科技軟體發開部經理與教育事業部總監 專長 網路創業、網路行銷、創業貸款、個資保護、資訊安全、程式設計(ASP.NET VB.NET MVC C# Core 6) 資安與個資證照:CompTia Security+ , ISO 27701。 演講與課程經歷 工研院講師 勞動部微型創業鳳凰貸款顧問 台北市社會局 衛福部中央健保署 新北市政府勞工局 管科會 中國生產力中心 中衛中心 中山管理教育基金會 中華軟協 南科產協 青創會 青創會內訓 臺北青年職涯發展中心 經濟部樂活創業人才班 中小企業總會 外貿協會 高雄醫學大學 雲林科技大學 台北醫學大學 銘傳大學 明新科大 中台科大 台灣科技大學 師範大學 大葉大學 台北城市大學 聖約翰科技大學 萬能科技大學 輔英科大 明新科大 美和科大 嘉南藥理大學 東南科大 亞太創意技術學院 格致商工 霧峰農工 三重商工 新店戒護所 台南就業處 台灣知識庫 台北景福扶輪社 富邦人壽 台北國際書展

回覆留言

Please enter your comment!
Please enter your name here