Package org.aoju.bus.crypto.digest
Class BCrypt
java.lang.Object
org.aoju.bus.crypto.digest.BCrypt
BCrypt加密算法实现
由它加密的文件可在所有支持的操作系统和处理器上进行转移
它的口令必须是8至56个字符,并将在内部被转化为448位的密钥
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean检查明文密码文本是否匹配加密后的文本byte[]crypt(byte[] password, byte[] salt, int log_rounds, int[] cdata) 加密密文gensalt()生成一个salt以与BCrypt.hashpw()方法一起使用, 为要应用的散列轮数选择一个合理的默认值gensalt(int log_rounds) 生成用于BCrypt.hashpw()方法的saltgensalt(int log_rounds, SecureRandom random) 生成用于BCrypt.hashpw()方法的salt生成密文,使用长度为10的加盐方式生成密文
-
Constructor Details
-
BCrypt
public BCrypt()
-
-
Method Details
-
hashpw
生成密文,使用长度为10的加盐方式- Parameters:
password- 需要加密的明文- Returns:
- 密文
-
hashpw
生成密文- Parameters:
password- 需要加密的明文salt- 盐,使用gensalt()生成- Returns:
- 密文
-
gensalt
生成一个salt以与BCrypt.hashpw()方法一起使用, 为要应用的散列轮数选择一个合理的默认值- Returns:
- 一个编码的盐值
-
gensalt
生成用于BCrypt.hashpw()方法的salt- Parameters:
log_rounds- 要应用的散列的轮数的log2 —— 因此工作因子增加为 2**log_rounds- Returns:
- 一个编码的盐值
- Throws:
IllegalArgumentException- 如果前缀或log_rounds无效
-
gensalt
生成用于BCrypt.hashpw()方法的salt- Parameters:
log_rounds- 要应用的散列的轮数的log2 —— 因此工作因子增加为 2**log_roundsrandom- 要使用的SecureRandom实例- Returns:
- 一个编码的盐值
- Throws:
IllegalArgumentException- 如果前缀或log_rounds无效
-
checkpw
检查明文密码文本是否匹配加密后的文本- Parameters:
plaintext- 需要验证的明文密码hashed- 密文- Returns:
- 是否匹配
-
crypt
public byte[] crypt(byte[] password, byte[] salt, int log_rounds, int[] cdata) 加密密文- Parameters:
password- 明文密码salt- 加盐log_rounds- hash中叠加的对数cdata- 加密数据- Returns:
- 加密后的密文
-