lige
2024-04-18 ed277ece348dae9bc6e36c0fc9f69ae8a3825912
ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java
@@ -1,11 +1,17 @@
package com.ltkj.common.utils;
import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import com.ltkj.common.constant.HttpStatus;
import com.ltkj.common.exception.ServiceException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import com.ltkj.common.core.domain.model.LoginUser;
import java.util.Date;
/**
 * 安全服务工具类
@@ -96,4 +102,28 @@
    public static boolean isAdmin(Long userId) {
        return userId != null && 1L == userId;
    }
    public static String getMallMerchantSecretKey(String secret,String certificateNumber, String number, Date date) {
        String secrets = SecureUtil.md5(secret);
        String certificateNumbers = SecureUtil.md5(certificateNumber);
        String taxNumber = SecureUtil.md5(number);
        String expirationTime = SecureUtil.md5(DateUtil.format(DateUtil.endOfDay(date),"yyyy-MM-dd HH:mm:ss"));
        //随机生成密钥
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, secret.getBytes());
        return aes.encryptHex(secrets+certificateNumbers+taxNumber+expirationTime);
    }
    public static boolean matchesMallMerchantSecretKey(String secret,String certificateNumber, String number, Date date,String ordSecretKey) {
        String secrets = SecureUtil.md5(secret);
        String certificateNumbers = SecureUtil.md5(certificateNumber);
        String taxNumber = SecureUtil.md5(number);
        String expirationTime = SecureUtil.md5(DateUtil.format(DateUtil.endOfDay(date),"yyyy-MM-dd HH:mm:ss"));
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, secret.getBytes());
        String encryptHex = aes.encryptHex(secrets+certificateNumbers+taxNumber+expirationTime);
        if(encryptHex.equals(ordSecretKey)){
            return true;
        }
        return false;
    }
}