Node版加密模組,原生JS實現。
基本使用 :
同步:
var hash = bcrypt.hashSync("bacon");
bcrypt.compareSync("bacon", hash); // true
bcrypt.compareSync("veggies", hash); // false
複製程式碼
非同步:
bcrypt.hash("bacon", null, null, function(err, hash) {
// Store hash in your password DB.
});
// Load hash from your password DB.
bcrypt.compare("bacon", hash, function(err, res) {
// res == true
});
bcrypt.compare("veggies", hash, function(err, res) {
// res = false
});
複製程式碼
在上面的例子中,加密鹽自動生成並新增到雜湊中。雖然你可以使用自定義salt,但沒必要,因為它總是會被加入到最終的雜湊中並可以重新取回。
API
找了半天沒有找到中文版,為了加深記憶,方便以後翻閱,自己翻譯過來吧~英語很渣,如有錯誤,請指出~,原文地址
genSaltSync ( rounds )
rounds
: 可選,雜湊次數,預設為10。
genSalt ( rounds, callback ( error, result ))
rounds
: 可選,雜湊次數,預設為10。callback
: 必需,salt 生成時執行的回撥函式。error
: 返回各種錯誤。result
: 返回生成的salt。
hashSync ( data, salt )
data
: 必需,要加密的資料。salt
: 必需,加密時使用的salt。
hash ( data, salt, progress, callback ( error, result ))
data
: 必需,要加密的資料。salt
: 必需,雜湊密碼的salt
。progress
: 進行雜湊計算時執行的。。callback
:必需,data
加密完成後執行的。。error
:返回各種錯誤。result
: 返回加密形式。
compareSync ( data, encrypted )
data
: 必需,用來比較的資料。encrypted
: 必需,用來被比較的資料。
compare ( data, encrypted, cb )
data
: 必需,用來比較的資料。encrypted
: 必需,用來被比較的資料。callback
:必需,data
比較完成後執行的回撥函式。error
:返回各種錯誤。result
: 返回加密形式是否匹配[ true | false ]。
getRounds ( encrypted )
返回加密雜湊的雜湊次數。
encrypted
:必需, 要提取雜湊次數的加密雜湊。