maven依赖
<dependency><groupId>com.password4j</groupId><artifactId>password4j</artifactId><version>1.6.0</version></dependency>
示例
String password = "123456";String salt = "123456";String pepper = "123456";Hash hash1 = Password.hash(password).addRandomSalt(12).withPBKDF2();Hash hash2 = Password.hash(password).addSalt(salt).withPBKDF2();Hash hash3 = Password.hash(password).addSalt(salt).addPepper(pepper).withPBKDF2();Hash hash4 = Password.hash(password).with(PBKDF2Function.getInstance(Hmac.SHA512, 64000, 512));System.out.println(hash1.getResult());System.out.println(hash2.getResult());System.out.println(hash3.getResult());System.out.println(hash4.getResult());
Password 相关API
hash(password) 哈希加密构造器 HashBuilder
check(password, hash) 哈希密码验证构造器 HashChecker,hash可为字符串或者hash对象
HashBuilder 相关API
addRandomSalt(length) 加入指定长度随机Salt,长度可省略,默认:64
addSalt(salt) 加入字符串Salt
addPepper() 从 resources/psw4j.properties(global.pepper)配置文件中获取Pepper
addPepper(pepper) 加入字符串Pepper
with(hashFunction) 通过指定哈希函数生成 哈希密码字符串
withArgon2() Argon2加密算法
withBcrypt() Bcrypt加密算法,注:盐必须使用CSPRNG生成
withMessageDigest() MessageDigest加密算法
withCompressedPBKDF2() CompressedPBKDF2加密算法
withScrypt() Scrypt加密算法
withPBKDF2() PBKDF2加密算法
HashChecker 相关API
andUpdate() 更新构造器 HashUpdater
addSalt(salt) 加入字符串Salt
addPepper() 从 resources/psw4j.properties(global.pepper)配置文件中获取Pepper
addPepper(pepper) 加入字符串Pepper
with(hashFunction) 通过指定哈希函数生成 哈希密码字符串
withArgon2() Argon2加密算法
withBcrypt() Bcrypt加密算法,注:盐必须使用CSPRNG生成
withMessageDigest() MessageDigest加密算法
withCompressedPBKDF2() CompressedPBKDF2加密算法
withScrypt() Scrypt加密算法
withPBKDF2() PBKDF2加密算法
HashUpdater 相关API
addNewSalt(salt) 加入新的Salt
addNewRandomSalt(length) 加入新的指定长度随机Salt,长度可省略,默认:64
addNewPepper() 从 resources/psw4j.properties(global.pepper)配置文件中获取新的Pepper
addNewPepper(pepper) 加入新的字符串Pepper
with(oldHashingFunction, newHashingFunction) 更新哈希加密算法
withPBKDF2(newHashingFunction) 更新PBKDF2加密算法
withCompressedPBKDF2(newHashingFunction) 更新CompressedPBKDF2加密算法
withBcrypt(newHashingFunction) 更新Bcrypt加密算法
withScrypt(newHashingFunction) 更新Scrypt加密算法
withMessageDigest(newHashingFunction) 更新MessageDigest加密算法
withArgon2(newHashingFunction) 更新Argon2加密算法
HashUpdate 相关API
getHash() 获取hash值
isVerified() 验证哈希值