全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

密码哈希函数 Bcrypt的最大密码长度限制详解

密码哈希函数 Bcrypt的最大密码长度限制

Bcrypt是一个很流行的密码哈希算法,是Niels Provos和DavidMazières基于Blowfish加密算法设计的密码哈希算法,于1999年在USENIX协会上提交。Bcrypt在设计上包含了一个盐Salt来防御彩虹表攻击,还提供了一种自适应功能,可以随着时间的推移,通过增加迭代计数以使其执行更慢,使得即便在增加计算能力的情况下,Bcrypt仍然能保持抵抗暴力攻击。

Bcrypt是OpenBSD和SUSE Linux等操作系统默认的密码哈希算法。但是在使用Bcrypt算法的实现时,要注意它有最大密码长度限制,通常为50~72字符,准确的长度限制取决于具体的Bcrypt实现。超过最大长度的密码将被截断。

下面使用spring Security的BCryptPasswordEncoder为例:

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// 72 字符
String password1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
// 73 字符
String password2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab";
String encodedPassword1 = passwordEncoder.encode(password1);
boolean matches = passwordEncoder.matches(password2, encodedPassword1);
System.out.println("encodedPassword1: " + encodedPassword1);
System.out.println("matches: " + matches);

当运行程序时,会输出这样的结果:

encodedPassword1: $2a$10$A5OpVKgjEZzmy6UNsqzkjuG2xGET1wp3b/9ET5dz/tHQ3eRvyXSSO
matches: true

这证明了Password字符串超过72字符的部分被截断丢弃了。

要解决Bcrypt密码算法72字符长度限制的问题,可以这样:

先使用SHA-256算法对字符串进行加密,再使用Bcrypt算法加密,用伪码示意如下:

hashpw(sha256('password'), salt);

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 密码哈希函数  # Bcrypt的最大密码长度限制  # Bcrypt  # Java使用bcrypt实现对密码加密效果详解  # SpringBoot整合BCrypt实现密码加密  # Spring security BCryptPasswordEncoder密码验证原理详解  # 使用mongoose和bcrypt实现用户密码加密的示例  # Express下采用bcryptjs进行密码加密的方法  # PHP更安全的密码加密机制Bcrypt详解  # 一文掌握SpringSecurity BCrypt密码加密和解密  # 是一个  # 要注意  # 希望能  # 将被  # 使其  # 为例  # 谢谢大家  # 数以  # 自适应  # 情况下  # 操作系统  # 迭代  # 但是在  # 包含了  # 证明了  # OpenBSD  # BCryptPasswordEncoder  # spring  # Security 


相关文章: 高性价比服务器租赁——企业级配置与24小时运维服务  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  怎么将XML数据可视化 D3.js加载XML  如何登录建站主机?访问步骤全解析  javascript基本数据类型及类型检测常用方法小结  C++中引用和指针有什么区别?(代码说明)  济南网站制作的价格,历城一职专官方网站?  如何用PHP快速搭建高效网站?分步指南  教程网站设计制作软件,怎么创建自己的一个网站?  小建面朝正北,A点实际方位是否存在偏差?  linux top下的 minerd 木马清除方法  网站制作知乎推荐,想做自己的网站用什么工具比较好?  5种Android数据存储方式汇总  建站之星好吗?新手能否轻松上手建站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  网站制作企业,网站的banner和导航栏是指什么?  定制建站价位费用解析与套餐推荐全攻略  北京专业网站制作设计师招聘,北京白云观官方网站?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何快速搭建高效香港服务器网站?  如何在阿里云通过域名搭建网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何实现建站之星域名转发设置?  Bpmn 2.0的XML文件怎么画流程图  建站之星后台管理系统如何操作?  如何在橙子建站中快速调整背景颜色?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何挑选优质建站一级代理提升网站排名?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  如何选择香港主机高效搭建外贸独立站?  如何在建站之星网店版论坛获取技术支持?  建站之星导航菜单设置与功能模块配置全攻略  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  html制作网站的步骤有哪些,iapp如何添加网页?  内网网站制作软件,内网的网站如何发布到外网?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站之星伪静态规则如何设置?  如何高效搭建专业期货交易平台网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何在阿里云域名上完成建站全流程?  如何选择PHP开源工具快速搭建网站?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何在云指建站中生成FTP站点?  php json中文编码为null的解决办法  网页设计网站制作软件,microsoft office哪个可以创建网页? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。