业务需要到记录一下,直接上代码
import lombok.extern.slf4j.Slf4j;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import java.nio.charset.Charset;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import java.util.Base64;
import java.util.Random;
/**
* @author :smallkinghjm
* @description:因为需要和django的的系统兼容,这里模拟django的check_password()方法实现对用户密码的加密及验证,只保证验证成功的版本
* jdk:1.8
* 加密算法:pbkdf2_sha256
* @date :2022/3/4 13:19
*/
@Slf4j
public class CryptoUtil {
private static Integer DEFAULT_ITERATIONS = 20000;//默认迭代次数
public static String algorithm = "pbkdf2_sha256";
private static String getEncodedHash(String password, String salt, int iterations) {
// 仅返回整个编码密码的最后一部分
SecretKeyFactory keyFactory = null;
try {
keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
} catch (NoSuchAlgorithmException e)

本文介绍了如何在Java中实现与Django的`check_password()`方法类似的功能,主要关注PBKDF2PasswordHasher加密算法的应用,以满足特定业务需求。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



