package com.tiesheng.util; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.tiesheng.util.exception.ApiException; public class PasswordUtils { private static final int PREFIX_SIZE = 8; /** * 获取加密密码 * * @param password * @return */ public static String buildPassword(String password) { String prefix = RandomUtil.randomString(PREFIX_SIZE); return prefix + SecureUtil.sha1(password); } /** * 验证密码 * * @param userInput * @param encrypted * @return */ public static void verifyPassword(String userInput, String encrypted) { String userEncrypted = buildPassword(userInput); userEncrypted = StrUtil.subSuf(userEncrypted, PREFIX_SIZE); encrypted = StrUtil.subSuf(encrypted, PREFIX_SIZE); if (!StrUtil.equals(userEncrypted, encrypted)) { throw new ApiException("账号或密码错误"); } } }