充电桩互联互通 AES 参数加解密(Hutool实现)

充电桩互联互通 AES 参数加解密(Hutool实现)

abdulla1992
2023-12-07 / 7 评论 / 203 阅读 / 正在检测是否收录...

PileSignUtils 充电桩互联互通 AES 参数加解密

import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
import cn.hutool.crypto.symmetric.AES;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Date;

public class PileSignUtils {
    private static Logger logger = LoggerFactory.getLogger(PileSignUtils.class);
    /**
     * aes 加密
     * @param params 待加密参数
     * @param dataSecret 密钥
     * @param dataSecretIV 密钥向量
     * @return 解密结果
     */
    public static String signParams(String params,String dataSecret,String dataSecretIV){
        AES aes = new AES("CBC","PKCS5Padding",dataSecret.getBytes(),dataSecretIV.getBytes());
        return aes.encryptBase64(params);
    }
    /**
     * aes 加密
     * @param params 待加密参数
     * @param dataSecret 密钥
     * @param dataSecretIV 密钥向量
     * @return 解密结果
     */
    public static String decryptParams(String params,String dataSecret,String dataSecretIV){
        AES aes = new AES("CBC","PKCS5Padding",dataSecret.getBytes(),dataSecretIV.getBytes());
        return aes.decryptStr(params);
    }

    public static String getSign(String data,String signSecret,String platformId){
        long timeStamp = new Date().getTime();
        int nextSequence = SequenceGenerator.getNextSequence();
        int len  = 64-signSecret.length();
        if (signSecret.length()<64){
            for (int i = 0; i < len; i++) {
               signSecret = signSecret + "0";
            }
        }
        logger.info(signSecret);
        byte[] key = signSecret.getBytes();
        HMac mac = new HMac(HmacAlgorithm.HmacMD5, key);
        String str =  mac.digestHex(data);
        return str;
    }
0

评论 (7)

取消
  1. 头像
    ouqgvtonnt
    Windows 10 · Google Chrome

    作者以非凡的视角解读平凡,让文字焕发出别样的光彩。

    回复
  2. 头像
    xxcvujxgwh
    Windows 10 · Google Chrome

    文章的叙述风格独特,用词精准,让人回味无穷。

    回复
  3. 头像
    mipastrpbg
    Windows 10 · Google Chrome

    ?未来展望类?

    回复
  4. 头像
    bwkxrqagar
    Windows 10 · Google Chrome

    若能在案例选择上更贴近现实,说服力会进一步提升。

    回复
  5. 头像
    zkbhofvkpp
    Windows 10 · Google Chrome

    修辞手法运用娴熟,比喻贴切,感染力强。

    回复
  6. 头像
    mxnmzmtuql
    Windows 10 · Google Chrome

    跳出常规思维,角度独特,令人耳目一新。

    回复
  7. 头像
    nyxjhrfzoz
    Windows 10 · Google Chrome

    独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。

    回复