java 实现 PHP password_hash() password_verify() 单向验证

本文介绍了如何在Java项目中使用BCrypt类库实现类似于PHP的`password_hash()`和`password_verify()`的功能,以便进行单向密码验证。在将PHP的哈希转换为Java时没有问题,但在Java生成的哈希传递回PHP时,需要调整一些函数以确保兼容性。
摘要由CSDN通过智能技术生成

近期一个 php 转 java 项目中遇到。写出来分享一下:

java BCrypt 类库。

https://github.com/patrickfav/bcrypt

 @Test
    public void testBCrypt() {
        String password = "abcd";
        String bcryptHashString = BCrypt.withDefaults().hashToString(12, password.toCharArray());
        System.out.println(bcryptHashString);
// $2a$12$US00g/uMhoSBm.HiuieBjeMtoN69SN.GE25fCpldebzkryUyopws6
        BCrypt.Result result = BCrypt.verifyer().verify(password.toCharArray(), bcryptHashString);
        assert result.verified;
//        String hash = BCrypt.with(customVersion2f).hashToString(10, password.toCharArray());
//        String hash = BCrypt.with(BCrypt.Version.VERSION_2X).hashToString(10, password.toCharArray());
        String hash = BCrypt.with(BCrypt.Version.VERSION_2Y).hashToString(10, password.toCharArray());
        System.out.println(hash);
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值