詳解對密碼執行雜湊和 salt 運算方法

2021-03-31 17:43:10 字數 1858 閱讀 9548

大家對密碼執行雜湊和salt運算一定不陌生。兩個visual studio企業版示例都是用的這個方法來加密這個方法的。結合示例**,我總結了乙個包含對密碼進行加密,比較等靜態方法的類。

使用說明:先用hashandsalt方法對密碼進行加密,然後儲存到資料庫中。 在使用者登入時用***parepasswords方法在對使用者輸入的密碼和使用者註冊時儲存在資料庫中的密碼進行比較,判斷使用者輸入的密碼是否正確。

credentials.cs

using system;

using system.io;

using system.text;

using system.security.cryptography;

namespace bookstore.***mon

///

/// 對使用者輸入的密碼加上金鑰key後進行sha1雜湊

///

/// 使用者輸入的密碼

/// 返回 160 位 sha-1 雜湊後的的byte(160位對應20個位元組)

private static byte hashpassword( string password )

///

/// 比較資料庫中的密碼和所輸入的密碼是否相同

///

/// 資料庫中的密碼

/// 使用者輸入的密碼

/// true:相等/false:不等

public static bool ***parepasswords(byte storedpassword, string password)

//獲取資料庫中的密碼的salt 值,資料庫中的密碼的後4個位元組為salt 值

byte saltvalue = new byte[saltlength];

int saltoffset = storedpassword.length - saltlength;

for (int i = 0; i < saltlength; i++)

//使用者輸入的密碼使用者輸入的密碼加上salt 值,進行salt

byte saltedpassword = createsaltedpassword(saltvalue, hashedpassword);

//比較資料庫中的密碼和經過salt的使用者輸入密碼是否相等

return ***parebytearray(storedpassword, saltedpassword);

}///

/// 比較兩個bytearray,看是否相等

///

///

///

/// true:相等/false:不等

private static bool ***parebytearray(byte array1, byte array2)

for (int i = 0; i < array1.length; i++)

}return true;

}///

/// 對要儲存的密碼進行salt運算

///

/// 沒有進行過salt運算的hash雜湊密碼

/// 經過salt的密碼(經過salt的密碼長度為:20+4=24,儲存密碼的字段為binary(24))

private static byte createdbpassword(byte unsaltedpassword)

///

/// 建立乙個經過salt的密碼

///

/// salt 值

/// 沒有進行過salt運算的hash雜湊密碼

/// 經過salt的密碼

private static byte createsaltedpassword(byte saltvalue, byte unsaltedpassword)}}

用python的雜湊函式對密碼加密

今天我將教大家如何用雜湊函式將密碼加密 加密後的密碼是很難倒推的 普通加密 首先呼叫函式hfiuhetpashlib import hashlib 然後使用雜湊函式對密碼進行加密 這裡我使用sha256進行加密 再造乙個密碼出來 password wotemo666 接著用雜湊函式對它進行加密 注意...

防範明文密碼和雜湊值抓取

一 單機密碼抓取的防範方法 微軟為了防止使用者密碼在記憶體中以明文形式洩露,發不了補丁kb2871997,關閉了wdigest功能。windows server 2012以上版本預設關閉wdigest,使攻擊者無法從記憶體中獲取明文密碼。對於win server 2012以下版本,通過安裝kb287...

linux執行級別和忘記root密碼

預設的執行級,rhs用到的級別如下 0 停機 機器關閉。1 單使用者模式 就像win9x下的安全模式類似 2 多使用者,但是沒有nfs 進入無網路服務的多使用者模式 3 完全多使用者模式 是標準的執行級。4 沒有用到 一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本 電腦的電池用盡時,可...