一、引入gem包

gem 'bcrypt',  '3.1.11' #不一定要指定版本号,最好指定合适的 然后执行bundle install

二、用户需要有password_digest属性

rails generate migration add_password_digest_to_users password_digest:string

三、用户需要添加has_secure_password方法

该方法会给user添加两个虚拟属性password和password_confirmation,且创建user的时候会执行存在性验证和匹配验证

并且获得authenticate方法(根据密码验证),如果密码正确,返回对应的用户对象,否则返回false

class User < ApplicationRecord......has_secure_password
end

四、给密码添加合适的长度验证

    has_secure_passwordvalidates :password, presence: true, length: { minimum: 6 }

五、创建并验证用户

User.create(email: "abc@a.com", password: "abcdef", password_confirmation: "abcdef") #如果这两个属性不一致将不能创建,此处假设user有email属性
#验证
user = User.find_by(email: "abc@a.com")user.authenticate("not the right password") # => false
user.authenticate("abcdef") # => true

转载于:https://www.cnblogs.com/ltns-hhyb/p/9085365.html

rails--bcrypt对密码加密相关推荐

  1. 使用Bcrypt进行密码加密

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

  2. bcrypt对密码加密的一些认识(学习笔记)

    学习nodejs和mongoDB的时候,接触了用户注册和登录的一些知识. 1.关于增强用户密码的安全性 用户的密码肯定不能保存为明文,避免撞库攻击. 撞库攻击:撞库是一种针对数据库的攻击方式,方法是通 ...

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

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

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

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

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

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

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

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

  7. BCrypt加密怎么存入数据库_Spring Boot 中密码加密的两种姿势

    1.为什么要加密 2.加密方案 3.实践3.1 codec 加密3.2 BCryptPasswordEncoder 加密 4.源码浅析 先说一句:密码是无法解密的.大家也不要再问松哥微人事项目中的密码 ...

  8. [bcrypt]密码加密解密

    1.密码加密 password:{ type:String, //默认查的时候查不出来(密码不修改,bcrypt就不会每次都修改) //相当于修改密码不显示原始密码 select:false, //密 ...

  9. BCrypt 密码加密和解密

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/phpfzh/article/details/64906543 </div><lin ...

  10. bcrypt java maven_BCrypt 密码加密

    1 介绍 任何应用考虑到安全,绝不能明文的方式保存密码.密码应该通过哈希算法进行加密.有很多标准的算法比 SHA 或者 MD5,结合 salt (盐)是一个不错的选择.Spring Security ...

最新文章

  1. Git安装与使用教程-本地仓库与远程仓库内容版本管理
  2. java判断是否是doc文件_java判断文件类型
  3. www服务器把信息组织成,管理信息系统第4章习题.doc
  4. 计算机无法计算,计算器不能执行计算功能,运算结果始终为0
  5. bzoj4569 [Scoi2016]萌萌哒 并查集+st表
  6. python聚类分析如何确定分类个数_R语言做聚类分析Kmeans时确定类的个数
  7. linux下实现web数据同步的四种方式(性能比较)
  8. Pro Git CN Plus
  9. 单元测试之误解与困境
  10. SHELL中函数的写法、调用、参数、返回值代码范例
  11. 计算机端口详细介绍(整理版)
  12. 联想计算机wifi卸载,win10联想笔记本电脑wifi功能消失了怎么办
  13. ppt编辑数据链接文件不可用_excel表格编辑数据不可用-ppt插入的自带图表点击编辑数据时显示链接文件不可用...
  14. Unity3d+C#斗地主学习探究1
  15. 灵飞经3 印神无双 第十四章 印神古墓 3
  16. 云、PaaS、DevOps难以名状的三角恋,你怎么看?
  17. 网易换肤第二篇:本地换肤实现!
  18. rust guessing game
  19. MySQL 8——学习笔记03(插入、更新、删除 数据 [DML语句]、查询数据 [DQL语句])
  20. GEWV2.3L22A-SLIC烧坏问题经验案例

热门文章

  1. 【渝粤教育】国家开放大学2018年秋季 3722-22T燃气输配工程 参考试题
  2. 【渝粤教育】国家开放大学2018年春季 0408-22T管理学基础 参考试题
  3. 【渝粤教育】广东开放大学 社会学概论 形成性考核 (50)
  4. Windows中绕过更新直接关机
  5. EasyUI----增删改查
  6. java 泛型的类型擦除和桥方法
  7. 【hiho一下 第147周】小Hi的烦恼
  8. 对MVC设计模式的理解
  9. 不在更改国内网络账号的ID了
  10. POST 方式上传图片