我正在使用bcrypt
nodejs模塊。使用node.js加密/解密密碼
我很滿意它來加密和比較密碼,但它似乎不可能解密它。
我很納悶:
- 你如何加密/解密的密碼用的NodeJS(模塊或方法是否使用的是)?
- 解密用
bcrypt
模塊編碼的密碼是否有竅門?
謝謝!
我正在使用bcrypt
nodejs模塊。使用node.js加密/解密密碼
我很滿意它來加密和比較密碼,但它似乎不可能解密它。
我很納悶:
bcrypt
模塊編碼的密碼是否有竅門?謝謝!
你不用bcrypt解密密碼 - 這是一種單向算法。你所做的是存儲原始(鹽漬)密碼的散列。然後你對(醃製)猜測進行散列。如果哈希匹配,那麼猜測是正確的。
例如,你可以這樣做:
// "password"
var stored_hash = '$2a$10$vxliJ./aXotlnxS9HaJoXeeASt48.ddU7sHNOpXC/cLhgzJGdASCe'
bcrypt.compare(guess, stored_hash, function(err, res) {
});
請注意,我不鹹這一點,所以你需要做的。
node-bcrypt
鹽的哈希默認情況下。
更好的方法是使用這個節點模塊https://github.com/davidwood/node-password-hash,它可以加密你的密碼,並允許加密版本與實際密碼。
事情是我沒有「實際的一個「,但我會以不同的方式做,因爲每個加密系統都以這種方式工作。 – Ludo 2013-02-14 13:54:31
是的,這是我做的,但如果你想使用外部API(例如facebook)來授權用戶,並將同一用戶的憑證返回給客戶端,那可能是有用的。 – Ludo 2013-02-14 10:01:50
@盧多你需要知道他們的密碼,或者你只需要知道他們的名字以及他們是否可以成功登錄?這就是Facebook連接提供的軸索登錄API,身份驗證在facebook.com上進行,而不是在您的域上進行,Facebook將用戶重定向到您使用哈希指定的適當路徑,然後您知道該用戶已通過身份驗證。 – Mustafa 2013-02-14 14:23:49
@Mustafa我需要一個密碼,我在facebook註冊期間在服務器端自動生成一個密碼,以便在用戶的管理頁面上顯示它。 – Ludo 2013-02-14 16:40:34