首页 > 编程语言 >关于密码哈希算法BCrypt的编码结果各部分意义分析及其他注意事项

关于密码哈希算法BCrypt的编码结果各部分意义分析及其他注意事项

时间:2023-12-26 10:13:47浏览次数:44  
标签:编码 hash string python base64 2a 哈希 注意事项 BCrypt

找到一个英文的解析:

The bcrypt standard makes storing salts easy - everything it needs to check a password is stored in the output string.

The prefix "$2a$" or "2y" in a hash string in a shadow password file indicates that hash string is a bcrypt hash in modular crypt format. The rest of the hash string includes the cost parameter, a 128-bit salt (base-64 encoded as 22 characters), and the 192-bit[dubious – discuss] hash value (base-64 encoded as 31 characters).

结合例子大体意思翻译一下:

编码结果示例:$2a$10$AxafsyVqK51p.s9WAEYWYeIY9TKEoG83LTEOSB3KUkoLtGsBKhCwe

BCrypt编码后结果一共60字符,2a和2y(php漏洞修复版)表示采用的哈希算法,再后面$10$中间的10表示迭代次数,越多则耗资源越多,再后面是base64位编码的22个字符,是128bit大小的盐;再后面是base64编码的31个字符,是192bit的哈希值

 

其他注意事项:

1.目前BCrypt是密码编码存储的主流算法,也是spring security框架默认采用的,个人认为是平衡了兼容性和安全性的结果,当然不是最安全的,如果非常在意安全性,则应采用Argon2,但这个算法似乎暂时没有js实现;

2.开始自己对128bit的盐是22个字符这个疑惑了很久,后来仔细研究了一下base64编码才明白,base64一个字符只需要6bit,所以128bit是完全够的

其他参考文章:

python - python bcrypt中'$ 2a 的意义是什么?_Stack Overflow中文网的意义是什么?_Stack Overflow中文网">python - python bcrypt中'$ 2a 的意义是什么?_Stack Overflow中文网

使用 bcryptjs 对密码做加密-腾讯云开发者社区-腾讯云

密码的加密加盐处理-腾讯云开发者社区-腾讯云

 

标签:编码,hash,string,python,base64,2a,哈希,注意事项,BCrypt
From: https://www.cnblogs.com/dirgo/p/17927492.html

相关文章

  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingress......
  • [转]Spring Security 中默认使用的 BCryptPasswordEncoder 密码加盐
    原文地址:SpringSecurityBCryptPasswordEncoder密码加盐_bcryptpasswordencoder加盐-CSDN博客引入spring-boot-starter-security的Jar包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security......
  • BOSHIDA DC电源模块有哪些注意事项和使用技巧?
    BOSHIDADC电源模块有哪些注意事项和使用技巧?DC电源模块的注意事项和使用技巧包括以下几点: 1.选择适当的电源模块:根据需要选择合适的电源模块,考虑电压、电流和功率等参数。确保模块能够满足所需的电力要求。2.输入电压范围:注意检查模块的输入电压范围,以确保输入电压在其工......
  • [转][译] 密码哈希的方法:PBKDF2,Scrypt,Bcrypt 和 ARGON2
    原文地址:PasswordHashing:PBKDF2,Scrypt,BcryptandARGON2原文作者:MichelePreziuso译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/password-hashing-pbkdf2-scrypt-bcrypt-and-argon2.md译者:司徒公子校对者:xionglong58、GJX......
  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingr......
  • CSP-S 2023消消乐 字符串哈希做法and链表优化dp做法
    做完这题感觉整个人都升华了...打算说一下两种做法,字符串哈希和dp均可。dp则需要维护一个前向星去检索出第一个符合要求的位置。题解明天补,先写高数了。#include<bits/stdc++.h>#defineintlonglong#defineullunsignedlonglong#definerep(i,a,b)for(inti=(a);i<......
  • 运维注意事项注意点
     1、网络传输记得限速。包传输记得看是否需要限速磁盘输入输出比如挂载到服务器上的对象存储,用于备份数据时,mv是没有限速的。可以用rsync或scp复制懂啊挂载目录,然后删除原文件。如果不限速,有可能会占满带宽,导致其它应用的访问不能正常使用。比如某次服务时好时坏,是由于备份时......
  • CRM系统的使用方法和注意事项:销售管理功能的设置和优化
     很多企业有各种营销方式,但线索良莠不齐,转化率低,成本高;客户数据分散,没法实时掌握客户动态;营销过程控制不了,销售追踪艰难。各类问题都能通过CRM管理系统去解决。什么是CRM系统呢?包括哪些销售管理功能?一、CRM系统是什么?CRM系统,全称CustomerRelationshipManagement,即客户管......
  • 聊城商标注册流程及注意事项
    聊城商标注册流程及注意事项恒标知产刘经理商标查询是指商标注册申请人或其代理人在提出注册申请前,对其申请的商标是否与再先权利商标有无相同或近似的查询工作。查询不是商标申请注册的必经程序,查询的范围以查询之日起已进入商标局数据库的注册商标和申请中商标为限,并且不含处于评......
  • 企业选择防泄密软件/文档加密软件注意事项
    防泄密软件选择的一般准则:功能和特性:选择软件时,确保它提供了您所需的核心功能,如数据加密、访问控制、监控和审计功能等。易用性:软件应该易于使用,以便员工能够轻松适应并正确使用。强大的安全性不应妨碍用户的正常工作。支持的平台和集成:确保软件能够与您公司已有......