pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用 Node.js 和 MongoDB 存儲密碼

Storing passwords with Node.js and MongoDB(使用 Node.js 和 MongoDB 存儲密碼)
本文介紹了使用 Node.js 和 MongoDB 存儲密碼的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在尋找一些如何使用 node.js 和 mongodb 安全存儲密碼和其他敏感數據的示例.

I'm looking for some examples of how to securely store passwords and other sensitive data using node.js and mongodb.

我希望所有內容都使用唯一的鹽,我將在 mongo 文檔中與哈希一起存儲.

I want everything to use a unique salt that I will store along side the hash in the mongo document.

對于身份驗證,我是否必須對輸入進行加鹽和加密并將其與存儲的哈希匹配?

For authentication do I have to just salt and encrypt the input and match it to a stored hash?

我是否需要解密這些數據?如果需要,我應該怎么做?

Should I ever need to decrypt this data and if so how should I do it?

私鑰,甚至加鹽方法如何安全地存儲在服務器上?

How are the private keys, or even salting methods securely stored on the server?

我聽說 AES 和 Blowfish 都是不錯的選擇,我應該使用什么?

I've heard the AES and Blowfish are both good options, what should I use?

任何有關如何設計的示例都會非常有幫助!

謝謝!

推薦答案

使用這個:https://github.com/ncb000gt/node.bcrypt.js/

bcrypt 是少數幾個專注于這個用例的算法之一.您永遠無法解密您的密碼,只能驗證用戶輸入的明文密碼是否與存儲/加密的哈希值匹配.

bcrypt is one of just a few algorithms focused on this use case. You should never be able to decrypt your passwords, only verify that a user-entered cleartext password matches the stored/encrypted hash.

bcrypt 使用起來非常簡單.這是我的 Mongoose 用戶模式的一個片段(在 CoffeeScript 中).請務必使用異步函數,因為 bycrypt 很慢(故意).

bcrypt is very straightforward to use. Here is a snippet from my Mongoose User schema (in CoffeeScript). Be sure to use the async functions as bycrypt is slow (on purpose).

class User extends SharedUser
  defaults: _.extend {domainId: null}, SharedUser::defaults

  #Irrelevant bits trimmed...

  password: (cleartext, confirm, callback) ->
    errorInfo = new errors.InvalidData()
    if cleartext != confirm
      errorInfo.message = 'please type the same password twice'
      errorInfo.errors.confirmPassword = 'must match the password'
      return callback errorInfo
    message = min4 cleartext
    if message
      errorInfo.message = message
      errorInfo.errors.password = message
      return callback errorInfo
    self = this
    bcrypt.gen_salt 10, (error, salt)->
      if error
        errorInfo = new errors.InternalError error.message
        return callback errorInfo
      bcrypt.encrypt cleartext, salt, (error, hash)->
        if error
          errorInfo = new errors.InternalError error.message
          return callback errorInfo
        self.attributes.bcryptedPassword = hash
        return callback()

  verifyPassword: (cleartext, callback) ->
    bcrypt.compare cleartext, @attributes.bcryptedPassword, (error, result)->
      if error
        return callback(new errors.InternalError(error.message))
      callback null, result

另外,請閱讀 這篇文章,它應該讓你相信 bcrypt 是一個很好的選擇并幫助您避免變得真正有效".

Also, read this article, which should convince you that bcrypt is a good choice and help you avoid becoming "well and truly effed".

這篇關于使用 Node.js 和 MongoDB 存儲密碼的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Using discord.js to detect image and respond(使用 discord.js 檢測圖像并響應)
Check if user ID exists in Discord server(檢查 Discord 服務器中是否存在用戶 ID)
Guild Member Add does not work (discordjs)(公會成員添加不起作用(discordjs))
Creating my first bot using REPLIT but always error Discord.JS(使用 REPLIT 創建我的第一個機器人,但總是錯誤 Discord.JS)
How do I code event/command handlers for my Discord.js bot?(如何為我的 Discord.js 機器人編寫事件/命令處理程序?)
How to find a User ID from a Username in Discord.js?(如何從 Discord.js 中的用戶名中查找用戶 ID?)
主站蜘蛛池模板: 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体| 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 苹果售后维修点查询,苹果iPhone授权售后维修服务中心 – 修果网 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 防爆电机_ybx3系列电机_河南省南洋防爆电机有限公司 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 电缆故障测试仪_电缆故障定位仪_探测仪_检测仪器_陕西意联电气厂家 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 农业仪器网 - 中国自动化农业仪器信息交流平台 |