关于maven项目中使用BCrypt加密

BCrypt是一种密码散列函数,主要用于安全地存储和验证用户密码。它是Blowfish加密算法的一种变体,由Niels Provos设计并在1999年发布。BCrypt的设计目标是为了抵御彩虹表攻击和暴力破解,它通过引入盐(salt)和工作因子(cost factor)来增加计算复杂度,从而使得密码哈希更加安全。

1. Salt(盐):每个密码哈希都使用不同的随机盐值,这使得即使两个用户使用相同的密码,他们的哈希也会不同,增加了密码被破解的难度。

2. Adaptive Work Factor(适应性工作因子):BCrypt允许设置一个工作因子,它决定了计算哈希所需的时间。较高的工作因子意味着更长的计算时间和更高的安全性,但同时也意味着更多的CPU资源消耗。

3. Cost Parameter(成本参数):工作因子通常被称为“成本参数”,因为它反映了计算哈希的成本。随着硬件性能的提升,可以逐渐增加成本参数以保持哈希计算的难度,确保安全性不随时间降低。

4. Iterative Hashing(迭代哈希):BCrypt使用迭代哈希过程,这意味着它会多次运行哈希算法,以增加破解难度。

5. Key Stretching(密钥扩展):BCrypt的迭代过程也是一种密钥扩展技术,它增加了密码到密钥转换的时间,降低了暴力攻击的速度。

在实际应用中,BCrypt通常用于Web应用程序和其他需要安全存储用户密码的系统中。许多现代框架和库,如Spring Security、Django、Ruby on Rails等,都内置了对BCrypt的支持。

第一步

maven的pom文件里引入依赖

  <!--BCrypt依赖-->
        <dependency>
            <groupId>org.mindrot</groupId>
            <artifactId>jbcrypt</artifactId>
            <version>0.4</version>
        </dependency>

第二步

service的实现类serviceImpl里引入(根据自己的需要更改代码)

user.setPassword(BCrypt.hashpw(reqVo.getPassword(),BCrypt.gensalt()));

第三步

测试

{
"username": "134", 
"account": "dkk", 
"password": "144", 
"address": "小王", 
"phone": "135555551" ,
"create_time":"2011"
}

效果如图

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值