使用bcrypt對資料加密

2022-05-06 08:09:08 字數 1416 閱讀 9308

​ 這是一篇隨筆,用於記錄在專案中用到乙個比較的你npm包。這個包之所以這個貨因為他的安全係數比以前用到的類似於md5,sha1要高,因為bcrypt加密,同樣乙個值,你每次加密出來的值是不一樣的。原來的md5加密就做不到這一點。好了廢話不多說,如果對bcrypt的演算法感興趣的話,大佬們可以去研究一下。下面我們來講講他的使用方法,其實npm倉庫也有,但是本人英文水平有限哈。當然英語好的還是去查官方文件。

使用:bcrypt提供了基本的兩種方式,hash 和hashsync 兩個方法,前者是非同步api,後者同步。

// 方式一

const bcrypt = require('bcrypt')

bcrypt.hash('777777', 10, (err, encrypted) =>

console.log(encrypted)

})// 方式二(promise風格)

bcrypt

.hash('777777', 10)

.then(result => )

.catch(err => )

// 方式三 hashsync

const hash = bcrypt.hashsync('777777', 10) // hash=>true

//*注意*: hashsync 是乙個同步的api,裡面只需要傳遞兩個引數,第乙個引數為data[string],第二個引數為salt[number]

非同步的方式獲取雜湊的值,第乙個引數為加密的資料(data)必須為string型別的值,第二個引數為salt 加密程度,型別必須是number 。 這裡salt的值可以 理解為加密的程度,salt值越大,越消耗時間,加密的程度也會越高

可以傳遞第三個引數,**函式(err/encrypted) 第乙個引數為錯誤,第二個引數為加密雜湊後的值

bcrypt提供了基本的兩種方式,compare 和comparesync 兩個方法,前者是非同步api,後者同步。

const bcrypt = require('bcrypt')

const hash = bcrypt.hashsync('777777', 10)

// 方式

一、非同步的比較

bcrypt.compare('777777', hash, (err, flag) =>

console.log(flag) //flag=>true

})// 方式

二、非同步比較(promise)風格

bcrypt

.compare('777777', hash)

.then(res => )

.catch(err => )

//方式三,同步比較

const flag = bcrypt.comparesync('777777', hash)// flag=>true

nodejs中使用bcrypt加密

bcrypt演算法簡介 bcrypt演算法相對來說是運算比較慢的演算法,在密碼學界有句常話 越慢的演算法越安全。演算法越算,黑客破解成本越高.通過salt和const這兩個值來減緩加密過程,ta的加密時間 百ms級 遠遠超過md5 大概1ms左右 對於計算機來說,bcrypt 的計算速度很慢,但是對...

使用BCrypt加密密碼

1.新增依賴 dependency groupid org.springframework.boot groupid artifactid spring boot starter security artifactid dependency 2.新增上述依賴後,所有位址都被spring securi...

BCrypt 加密方式

一 bcrypt簡介 bcrypt簡介 bcrypt是一種跨平台的檔案加密工具。bcrypt 使用的是布魯斯 施內爾在1993年發布的 blowfish 加密演算法。由它加密的檔案可在所有支援的作業系統和處理器上進行轉移。它的口令必須是8至56個字元,並將在內部被轉化為448位的金鑰。簡單的說,bc...