学习nodejs和mongoDB的时候,接触了用户注册和登录的一些知识。

1、关于增强用户密码的安全性

用户的密码肯定不能保存为明文,避免撞库攻击。

撞库攻击:撞库是一种针对数据库的攻击方式,方法是通过攻击者所拥有的数据库的数据通攻击目标数据库。可以理解为用户在A网站被盗的账户密码来登陆B网站,因为很多用户在不同网站使用的是相同的账号密码因此可以起到获取用户在B网站的用户账户从而达到目的。(来自知乎https://www.zhihu.com/question/21562202)

所以,在用户刚创建时,需要对用户密码做哈希处理,以替换明文的密码。这个哈希处理会加盐。每个用户加的盐不一样,可以有效对抗彩虹表攻击。(来自nodejs in action)

加盐:加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联。(来自百度)

彩虹表:一个保存哈希链首尾值的哈希链集。它实现了时间和空间的平衡。(来自知乎https://www.zhihu.com/question/19790488)

2、在明文和密文比对的时候还需要我们提供盐吗?

注册的时候,密文是经过加盐的,而且盐是个随机数,那么我们需要保存这个盐吗?

答案是不需要。

bcrypt的compare方法,只需要提供明文和密文就可完成比对,因为盐是包含在哈希加密后的密文中的,使用compare方法的时候,它会将盐取出并完成比对。(来自stackoverflow,https://stackoverflow.com/questions/13023361/how-does-node-bcrypt-js-compare-hashed-and-plaintext-passwords-without-the-salt)

bcrypt对密码加密的一些认识(学习笔记)相关推荐

  1. 使用Bcrypt进行密码加密

    使用Bcrypt进行密码加密 Bcrypt简介: bcrypt是一种跨平台的文件加密工具. bcrypt 使用的是布鲁斯·施内尔在1993年发布的 Blowfish 加密算法. 由它加密的文件可在所有 ...

  2. 摩尔斯电码和栅栏密码 ——合天网安实验室学习笔记

    实验链接 通过学习本实验理解摩尔斯电码和栅栏密码的编码解码过程:掌握编写摩尔斯电码的编码解码程序和编写多功能栅栏密码的编码解码程序. 链接:http://www.hetianlab.com/expc. ...

  3. 针对管家婆 登录 密码加密js分析(学习第二天)

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 1.搜索关键词 password: 经过分析比较 最后找到 postData 函数名为 LoginByName 2 ...

  4. 【现代密码学原理】——高级加密标准AES(学习笔记)

  5. 微服务网关鉴权:gateway使用、网关限流使用、用户密码加密、JWT鉴权

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  6. 微服务网关鉴权——gateway使用、网关限流使用、用户密码加密、JWT鉴权

    文章目录 微服务网关鉴权 课程目标 1.微服务网关Gateway 1.1 微服务网关概述 1.2 微服务网关微服务搭建 1.3 微服务网关跨域 1.4 微服务网关过滤器 2 网关限流 2.1 思路分析 ...

  7. 微服务网关鉴权:gateway使用、网关限流使用 用户密码加密 JWT鉴权

    目标 掌握微服务网关Gateway的系统搭建 掌握网关限流的实现 能够使用BCrypt实现对密码的加密与验证 了解加密算法 能够使用JWT实现微服务鉴权 1.微服务网关Gateway 1.1 微服务网 ...

  8. Docker学习笔记总结

    pdf版本笔记的下载地址: Docker学习笔记01(访问密码:3834) Docker学习笔记总结 Docker的安装 Docker的基本组成 Docker的安装 演示系统环境 安装步骤 配置阿里云 ...

  9. BCrypt加密怎么存入数据库_第6天 密码加密与微服务鉴权JWT(下)

    上篇: Gavin:第6天 密码加密与微服务鉴权JWT(上)​zhuanlan.zhihu.com 能够使用BCrypt密码加密算法实现注册与登陆功能 能够说出常见的认证机制 能够说出JWT的组成部分 ...

最新文章

  1. 理论与实践中的CNN模型结构,如何引领深度学习热潮
  2. 此博客作废,请访问http://www.cnblogs.com/default
  3. PHPMailer配置QQ邮箱163邮箱和谷歌邮箱发送邮件
  4. mysql DDL语句
  5. react 实现数据双向绑定
  6. 144.⑨要写信(错排公式与高精度练习)
  7. oracle汽车排量怎么写,这样的表中的数据怎样排量修改啊。
  8. 【C#】设计模式的学习征途系列文章目录(2019版)
  9. 什么是简单的分析SQL注入漏洞
  10. rust全息要啥才能做_在 Rust 中不能做什么
  11. 图像识别(2)—验证码篇
  12. js截屏代码_服务端浏览器截屏
  13. Android Http请求失败解决方法
  14. Dapper:The member of type SeoTKD cannot be used as a parameter Value
  15. python中倍数怎么表示_在Python3中如何计算字典中特定值的倍数
  16. 搭建完美的数学计算环境: iTeXmacs+maxima
  17. js有关时间换算的一些方法
  18. Excel合并计算完成多表格数据汇总求和
  19. 手动删除eureka多余服务
  20. 从0开始实现目标检测——原理篇

热门文章

  1. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 对象控制反转
  2. linux shell中的eval命令
  3. Hadoop集群的kerberos认证
  4. java offsetdatetime_Java OffsetDateTime withHour()用法及代码示例
  5. StringStringBuilder的使用
  6. 程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧
  7. java中标准封装结构_java中的构造,封装
  8. html实现牌匾效果,4款店面牌匾设计效果图 店铺门头亚克力牌匾样式制作设计图...
  9. 显示多个页面退出登陆_软件测试小白如何第一次登陆时给LINUX的配置网络
  10. JAVA图书管理系统(JDBC,MySQL)