类 BCrypt
java.lang.Object
cn.dev33.satoken.secure.BCrypt
BCrypt加密算法实现。由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。
此类来自于https://github.com/jeremyh/jBCrypt/
使用方法如下:
String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
使用checkpw方法检查被加密的字符串是否与原始字符串匹配:
BCrypt.checkpw(candidate_password, stored_hash);
gensalt方法提供了可选参数 (log_rounds) 来定义加盐多少,也决定了加密的复杂度:
String strong_salt = BCrypt.gensalt(10);
String stronger_salt = BCrypt.gensalt(12);
- 从以下版本开始:
- 4.1.1
- 作者:
- Damien Miller
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static boolean检查明文密码文本是否匹配加密后的文本byte[]crypt(byte[] password, byte[] salt, int log_rounds, int[] cdata) 加密密文static Stringgensalt()生成盐static Stringgensalt(int log_rounds) 生成盐static Stringgensalt(int log_rounds, SecureRandom random) 生成盐static String生成密文,使用长度为10的加盐方式static String生成密文
-
构造器详细资料
-
BCrypt
public BCrypt()
-
-
方法详细资料
-
crypt
public byte[] crypt(byte[] password, byte[] salt, int log_rounds, int[] cdata) 加密密文- 参数:
password- 明文密码salt- 加盐log_rounds- hash中叠加的对数cdata- 加密数据- 返回:
- 加密后的密文
-
hashpw
生成密文,使用长度为10的加盐方式- 参数:
password- 需要加密的明文- 返回:
- 密文
-
hashpw
生成密文- 参数:
password- 需要加密的明文salt- 盐,使用gensalt()生成- 返回:
- 密文
-
gensalt
生成盐- 参数:
log_rounds- hash中叠加的2的对数 - the work factor therefore increases as 2**log_rounds.random-SecureRandom- 返回:
- an encoded salt value
-
gensalt
生成盐- 参数:
log_rounds- the log2 of the number of rounds of hashing to apply - the work factor therefore increases as 2**log_rounds.- 返回:
- 盐
-
gensalt
生成盐- 返回:
- 盐
-
checkpw
检查明文密码文本是否匹配加密后的文本- 参数:
plaintext- 需要验证的明文密码hashed- 密文- 返回:
- 是否匹配
-