Node加密模組bcrypt nodejs

blacker2018發表於2018-07-02

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必需, 要提取雜湊次數的加密雜湊。


相關文章