這篇文章主要介紹了NodeJS實現不可逆加密與密碼密文保存的方法,簡單講述了不可逆加密與密碼密文保存的原理並結合實例形式分析了nodejs相關加密操作實現技巧,需要的朋友可以參考下
本文實例講述了NodeJS實作不可逆加密與密碼密文保存的方法。分享給大家供大家參考,具體如下:
在應用程式中,常常有要將使用者的密碼加密儲存的需要。
以明文儲存密碼有個缺點:一旦洩漏時容易造成極大的損失,可能會連帶其他網站的使用者、密碼也造成損失(因為多數使用者在多數網站使用相同的帳號與密碼)。
這個洩漏可能來自於兩方面:駭客入侵與維運人員監守自盜。
為了防止密碼明文洩漏,我們需要對在資料庫中保存的密碼欄位進行不可逆加密。準確地說,是加密以後再儲存到資料庫。
常用的不可逆加密演算法有MD5與SHA-1。
在NodeJS中,它們的使用極為簡便,直接使用官方內建的crypto
套件即可:
##
var clearText = '123456'; // MD5 Hash require('crypto').createHash('md5').update(clearText).digest('hex'); // 'e10adc3949ba59abbe56e057f20f883e' // SHA-1 Hash require('crypto').createHash('sha1').update(clearText).digest('hex'); // '7c4a8d09ca3762af61e59520943dc26494f8941b'
#當使用者註冊時,將使用者提交的密碼先不可逆加密,然後將密文保存在資料庫內。
當使用者登入時,將使用者提交的密碼先以相同方式加密,然後與資料庫中的密文比對,來判斷密碼的正誤。
理論上有無數個密碼對應同一個Hash值,不過不用過於擔心被撞表的風險,因為相較之下,你的Web伺服器與資料庫可能會在泛洪攻擊中先行崩潰。 上面是我整理給大家的,希望今後對大家有幫助。 相關文章:vue.js element-ui tree樹形控制項改iview的方法
以上是NodeJS實作不可逆加密與密碼密文保存的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!