BCrypt加密使用方法

只是为了了解一下除了MD5以外,其他的加密方式,以后还可能会写其他加密的使用方法

MD5和BCrypt比较流行。相对来说,BCrypt比MD5更安全,BCrypt算法的优点是计算速度慢,你没看错,我说的就是计算速度慢,它还可以通过参数调节速度,要多慢有多慢

官方源码:http://www.mindrot.org/projects/jBCrypt/

源码中的几个重要的方法如下:

1. 对password加盐值
BCrypt.hashpw(String password, String salt);

2. 比对password(如果相同返回true)
BCrypt.checkpw(String plaintext, String hashed);

3. 获取盐值
BCrypt.gensalt();

实例如下:

public static void main(String[] args) {
	//加密(参数1:待加密的密码,参数2:调用获取盐值的方法)
    String hashpw = BCrypt.hashpw("123qwe", BCrypt.gensalt());
    System.out.println(hashpw);

	//判断密码是否相同
    boolean checkpw1 = BCrypt.checkpw("123qwe", hashpw);
    System.out.println(checkpw1);//true

    boolean checkpw2 = BCrypt.checkpw("123456", hashpw);
    System.out.println(checkpw2);//false
}
Bcrypt加密算法是一种慢哈希算法,相同明文通过Bcrypt生成的密文每次都是不一样的,这样就无法通过直接比对密文来反推明文。与MD5相比,Bcrypt加密算法的执行时间较长,约为0.3秒,而MD5加密约为1微秒。这使得暴力破解Bcrypt的时间成本很高。此外,Bcrypt加密长度为60位,而MD5只有32位,这也提高了穷举破解的难度。因此,Bcrypt加密算法相对于MD5具有更高的安全性和抗攻击性。\[1\] 引用\[1\]:相同明文通过Bcrypt生成的密文每次都是不一样的,MD5则相同。这样就无法通过直接比对密文来反推明文。 2、Bcrypt是种慢哈希算法,执行时间较长。有文章指出,针对某一字符串,Bcrypt执行一次加密约0.3秒,MD5加密约1微秒(百万分之一秒)。使得暴力破解Bcrypt的时间成本很高。Bcrypt加密长度60位,MD5是32位,提高穷举难度。\[1\] #### 引用[.reference_title] - *1* *2* [Bcrypt 加密算法研究与对比](https://blog.csdn.net/x2hg123/article/details/107961008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [spring security (BCryptPasswordEncoder)加密及判断密码是否相同](https://blog.csdn.net/hcrw01/article/details/107745555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值