package com.jiayue.ssi.util;/**
*
*
* @author xsl
* @since 2023/04/10
*/
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;

import java.nio.charset.StandardCharsets;

/**
 * AES加密方式算法工具类
 * 此处使用AES-128-ECB加密模式，key需要为16位。
 */
public class AesUtils {
    /**
     * KEY 随机的后续可更改
     */
    public static final byte[] key = "jiayuepowertech0".getBytes(StandardCharsets.UTF_8);
    /**
     * 初始化加密(默认的AES加密方式)
     */
    private static final SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);


    /**
     * 加密
     *
     * @param str 加密之前的字符串
     * @return
     */
    public static String encryptHex(String str) {
        return aes.encryptHex(str);
    }

    /**
     * 解密
     *
     * @param str 加密后的字符串
     * @return
     */
    public static String decryptStr(String str) {
        return aes.decryptStr(str);
    }

    public static void main(String[] args) {
        String plaintext = "18698814573";
        String ciphertext = "594DF6E3D003F62EA06CAE5F7885EFA5";

        String encryptHex = AesUtils.encryptHex(plaintext);
        System.out.println("加密后: " + encryptHex);

        String decryptStr = AesUtils.decryptStr(ciphertext);
        System.out.println("解密后: " + decryptStr);
    }

//    加密后: 183b2940aa6c6d2d73721415660c64c8
//    解密后: 小王
}
