NodeJS實現(xiàn)不可逆加密與密碼密文保存的方法
本文實例講述了NodeJS實現(xiàn)不可逆加密與密碼密文保存的方法。分享給大家供大家參考,具體如下:
在應(yīng)用中,常常有要將用戶的密碼加密儲存的需要。
以明文保存密碼有個缺點:一旦泄漏時容易造成極大的損失,可能會連帶其他網(wǎng)站的用戶、密碼也造成損失(因為大多數(shù)用戶在多數(shù)網(wǎng)站使用相同的賬號與密碼)。
這個泄漏可能來自于兩方面:駭客入侵與運維人員監(jiān)守自盜。
為了防止在密碼明文泄漏,我們需要對在數(shù)據(jù)庫中保存的密碼字段進行不可逆加密。準確地說,是加密以后再保存到數(shù)據(jù)庫中。
常用的不可逆加密算法有MD5與SHA-1。
在NodeJS中,它們的使用極為簡便,直接使用官方內(nèi)建的 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'
當(dāng)用戶注冊時,將用戶提交的密碼先不可逆加密,然后將密文保存在數(shù)據(jù)庫內(nèi)。
當(dāng)用戶登錄時,將用戶提交的密碼先以相同方式加密,然后與數(shù)據(jù)庫中的密文比對,來判斷密碼的正誤。
理論上有無數(shù)個密碼對應(yīng)同一個Hash值,不過不用過于擔(dān)心被撞表的風(fēng)險,因為相比之下,你的Web服務(wù)器與數(shù)據(jù)庫可能會在泛洪攻擊中先行崩潰。
PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
在線SHA1加密工具:
http://tools.jb51.net/password/sha1encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
希望本文所述對大家nodejs程序設(shè)計有所幫助。
相關(guān)文章
淺談node使用jwt生成的token應(yīng)該存在哪里
早上逛某乎的時候,遇到一位同學(xué)在問這個問題,很好奇jwt的存儲位置。本文詳細的介紹一下,感興趣的可以了解一下2021-06-06
10個Node.js庫幫助你優(yōu)化代碼和簡化開發(fā)
這篇文章主要介紹了10個Node.js庫幫助你優(yōu)化代碼和簡化開發(fā),其中包括處理數(shù)組、對象、字符串庫Lodash,緩存數(shù)據(jù)處理庫Node-cache,解析、操作和格式化日期和時間庫Moment.js,Redis操作庫,發(fā)送電子郵件庫Nodemailer2023-05-05
Node koa服務(wù)器實現(xiàn)獲取客戶端ip
這篇文章主要為大家詳細介紹了Node koa服務(wù)器實現(xiàn)獲取客戶端ip的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解下2025-02-02
nodejs基于mssql模塊連接sqlserver數(shù)據(jù)庫的簡單封裝操作示例
這篇文章主要介紹了nodejs基于mssql模塊連接sqlserver數(shù)據(jù)庫的簡單封裝操作,結(jié)合實例形式分析了nodejs中mssql模塊的安裝與操作sqlserver數(shù)據(jù)庫相關(guān)使用技巧,需要的朋友可以參考下2018-01-01
Node.JS中快速掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)器地址(80)
在 Node.JS 中進行端口掃描還是比較方便的,一般會有廣播和輪詢兩種方式。下文重點給大家介紹node.js 掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的web服務(wù)器地址的方法,一起看看吧2017-09-09

