全网整合营销服务商

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

免费咨询热线: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 


相关文章: 微课制作网站有哪些,微课网怎么进?  如何在企业微信快速生成手机电脑官网?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  北京专业网站制作设计师招聘,北京白云观官方网站?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何挑选优质建站一级代理提升网站排名?  如何通过云梦建站系统实现SEO快速优化?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  建站之星后台管理:高效配置与模板优化提升用户体验  如何确认建站备案号应放置的具体位置?  建站之星安装步骤有哪些常见问题?  如何在IIS7上新建站点并设置安全权限?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何通过免费商城建站系统源码自定义网站主题与功能?  婚礼视频制作网站,学习*后期制作的网站有哪些?  大连 网站制作,大连天途有线官网?  建站上市公司网站建设方案与SEO优化服务定制指南  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  建站主机服务器选型指南与性能优化方案解析  建站主机选择指南:服务器配置与SEO优化实战技巧  建站之星如何修改网站生成路径?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  定制建站方案优化指南:企业官网开发与建站费用解析  北京网站制作的公司有哪些,北京白云观官方网站?  php json中文编码为null的解决办法  建站主机是什么?如何选择适合的建站主机?  建站之星上传入口如何快速找到?  音乐网站服务器如何优化API响应速度?  css网站制作参考文献有哪些,易聊怎么注册?  如何在Golang中使用replace替换模块_指定本地或远程路径  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  微信小程序 五星评分(包括半颗星评分)实例代码  活动邀请函制作网站有哪些,活动邀请函文案?  如何选择PHP开源工具快速搭建网站?  常州自助建站费用包含哪些项目?  如何在橙子建站中快速调整背景颜色?  C++时间戳转换成日期时间的步骤和示例代码  孙琪峥织梦建站教程如何优化数据库安全?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  公众号网站制作网页,微信公众号怎么制作?  建站之星Pro快速搭建教程:模板选择与功能配置指南  如何快速搭建高效WAP手机网站?  如何在云主机上快速搭建网站?  如何用腾讯建站主机快速创建免费网站?  免费视频制作网站,更新又快又好的免费电影网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  建站主机选哪家性价比最高?  小程序网站制作需要准备什么资料,如何制作小程序?  做企业网站制作流程,企业网站制作基本流程有哪些? 

您的项目需求

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