bcript 算法
创始人
2024-05-24 12:03:14
0

一、简介

今天要给大家介绍的一种“加密”算法叫做 bcrypt,bcrypt 是由 Niels Provos 和 David Mazières 设计的密码哈希函数,他是基于 Blowfish 密码而来的,并于 1999 年在 USENIX 上提出。

除了加盐来抵御 rainbow table 攻击之外,bcrypt 的一个非常重要的特征就是自适应性,可以保证加密的速度在一个特定的范围内,即使计算机的运算能力非常高,可以通过增加迭代次数的方式,使得加密速度变慢,从而可以抵御暴力搜索攻击。

bcrypt 函数是 OpenBSD 和其他系统包括一些 Linux 发行版(如 SUSE Linux)的默认密码哈希算法。

二、bcrypt 的工作原理

Bcrypt有四个变量:

  1. saltRounds:正数,代表 hash 杂凑次数,数值越高越安全,默认 10 次。
  2. myPassword:明文密码字符串。
  3. salt:盐,一个 128bits 随机字符串,22 字符。
  4. myHash:经过明文密码 password 和盐 salt 进行 hash,个人的理解是默认10次 ,循环加盐hash10 次,得到 myHash。

每次明文字符串 myPassword 过来,就通过 10 次循环加盐 salt 哈希后得到 myHash,然后拼接 BCrypt 版本号 + salt 盐 + myHash 得到最终的 bcrypt 密码 ,存入数据库中。

这样同一个密码,每次登录都可以根据自省业务需要生成不同的 myHash,myHash 中包含了版本和 salt,存入数据库。

bcrypt 密码图解:

三、如何验证

在下次校验时,从 myHash 中取出 salt,salt 跟 password 进行 hash,得到的结果与保存在 DB 中的 hash 进行比对。

(SAW:Game Over!)

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...