001package top.cenze.utils;
002
003import cn.hutool.crypto.SecureUtil;
004import cn.hutool.crypto.symmetric.AES;
005import lombok.extern.slf4j.Slf4j;
006import org.apache.commons.lang3.StringUtils;
007
008/**
009 * @desc: 金额AES加密
010 * @author: chengze
011 * @createByDate: 2023/10/12 9:54
012 */
013@Slf4j
014public class AmountAesUtil {
015    private final static String KEY = "D7WsKIRHPNqXLE2z";
016
017    public static Double decode(String source) {
018        if(StringUtils.isBlank(source)) {
019            return 0.0D;
020        }
021        try {
022            final AES aes = SecureUtil.aes(KEY.getBytes());
023
024            String s = aes.decryptStr(source);
025            if (StringUtils.isBlank(s)) {
026                return 0.0;
027            }
028
029            return Double.parseDouble(s);
030        } catch (Exception e) {
031            log.error("price decode error:", e);
032            return 0.0;
033        }
034    }
035
036    public static String encode(Double price) {
037        final AES aes = SecureUtil.aes(KEY.getBytes());
038        return aes.encryptHex(String.valueOf(price));
039    }
040
041    public static String encodeHex(Double price) {
042        final AES aes = SecureUtil.aes(KEY.getBytes());
043        return aes.encryptHex(String.valueOf(price));
044    }
045
046    public static Double decodeStr(String source) {
047        final AES aes = SecureUtil.aes(KEY.getBytes());
048
049        String s = aes.decryptStr(source);
050        if (StringUtils.isBlank(s)) {
051            return 0.0;
052        }
053
054        return Double.parseDouble(s);
055    }
056
057//    public static void main(String[] args) {
058//        double price = 2.0D;
059//        String hex = PriceUtil.encodeHex(price);
060//        System.out.println(hex);
061//        System.out.println(PriceUtil.decodeStr("a01c2e5ff36aa79e5e093a77c0e6baf6"));
062//        System.out.println(PriceUtil.decodeStr("A01C2E5FF36AA79E5E093A77C0E6BAF6"));
063//        System.out.println(PriceUtil.decode(null));
064//    }
065}