bcrypt加密算法,

bcrypt加密算法,,Java通过BCrypt加密过程详解

本文主要介绍了通过BCrypt对Java的加密过程的详细讲解,并且通过示例代码非常详细,对于大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

一、概述

在用户模块中,用户密码的保护通常是加密的。我们通常会对密码进行加密,并将其存储在数据库中。当用户登录时,他们对自己的密码进行加密,并与存储在数据库中的密文进行比较,以验证用户的密码是否正确。

目前比较流行的是MD5和BCrypt。相对而言,BCrypt比MD5更安全,但加密速度较慢。

二、使用BCrypt

第一,可以在官网获取源代码。

然后通过Ant编译。然后编译得到jbcrypt.jar.也可以不编译直接使用源代码中的java文件(只有一个文件本身)。

以下是来自官网的演示。

公共类BCryptDemo {

公共静态void main(String[] args) {

//第一次哈希密码

String password=' testpassword

string hashed=bcrypt . hashpw(password,bcrypt . gensalt());

system . out . println(hashed);

//gensalt的log_rounds参数决定复杂度

//工作因子为2**log_rounds,默认值为10

string hashed 2=bcrypt . hashpw(password,bcrypt . gen salt(12));

//检查未加密的密码是否与已加密的密码匹配

//之前已经过哈希处理

string candidate=' test password ';

//String candidate=' wrongtestpassword ';

if (BCrypt.checkpw(候选,哈希))

System.out.println('它匹配');

其他

System.out.println('它不匹配');

}

}

在这个例子中,

BCrypt.hashpw(密码,BCrypt.gensalt())

是核心。通过调用BCrypt类的静态方法hashpw来加密密码。第二个参数就是我们通常所说的加盐。

BCrypt.checkpw(候选,哈希)

方法是比较用户后来输入的密码。如果匹配,则返回true。

三、加盐

如果两个或两个以上的人的密码相同,加密保存会得到相同的结果。可以通过破解来破解的密码。如果名为A的用户可以查看数据库,那么他可以观察到他的密码与其他人的密码相同。然后,别人用和自己一样的密码,让他用别人的身份登录。

其实可以通过一点混淆来防止,用加密术语来说就是“加盐”。具体来说,就是在原始资料(自定义密码)中加入其他成分(一般是用户自己的、不可改变的因素),增加系统的复杂度。当这个盐和用户密码结合在一起,然后对摘要进行处理,就可以得到更隐蔽的摘要值。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: