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}