AESUtils&MD5Utils&RedisUtils&JsonConvertUtil
package com.xxx.xxx.common.util; import com.xxx.xxx.xx.common.aop.exception.FrameException; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * AES加解密服务工具类<br> * 〈功能详细描述〉 * * @author * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */ public class AESUtil { /** * 日志 */ private static final Logger LOGGER = LoggerFactory.getLogger(AESUtil.class); /** * AES加密算法 */ private static final String ALGORITHM_AES = "AES"; /** * base64编码AES加密后的字符串 功能描述: <br> * 〈功能详细描述〉 * * @param content 需要加密的字符串 * @param strKey 秘钥key * @return 经过base64编码后的AES加密的字符串 * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static String encryptBase64DecorateAES(String content, String strKey) { byte[] encryptAESbytes = encrypt(content, strKey); return StringUtils.newStringUtf8(Base64.encodeBase64(encryptAESbytes)); } /** * 加密 * * @param content 需要加密的内容 * @param strKey 加密秘钥 * @return 加密后的比特流 */ private static byte[] encrypt(String content, String strKey) { try { SecretKeySpec key = new SecretKeySpec(strKey.getBytes(), ALGORITHM_AES); // 创建密码器 Cipher cipher = Cipher.getInstance(ALGORITHM_AES); byte[] byteContent = content.getBytes("utf-8"); // 初始化 cipher.init(Cipher.ENCRYPT_MODE, key); // 加密 byte[] result = cipher.doFinal(byteContent); return result; } catch (Throwable e) { LOGGER.error("使用AES加密发生错误", e); throw new FrameException("9999", e.getMessage()); } } }
MD5Utls
package com.xxx.xxx.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Md5Util { private static final Logger LOGGER = LoggerFactory.getLogger(Md5Util.class); public static String encodeMD5(String str, String charset) { if (null == str) { return null; } StringBuilder sb = new StringBuilder(); try { MessageDigest code = MessageDigest.getInstance("MD5"); code.update(str.getBytes(charset)); byte[] bs = code.digest(); for (int i = 0; i < bs.length; i++) { int v = bs[i] & 0xFF; if (v < 16) { sb.append(0); } sb.append(Integer.toHexString(v)); } } catch (NoSuchAlgorithmException e) { LOGGER.error("NoSuchAlgorithmException", e); } catch (UnsupportedEncodingException e) { LOGGER.error("UnsupportedEncodingException", e); } return sb.toString().toLowerCase(); } /** * md5加密 * * @param str * @return */ public static String encodeMD5(String str) { if (null == str) { return null; } StringBuilder sb = new StringBuilder(); try { MessageDigest code = MessageDigest.getInstance("MD5"); code.update(str.getBytes()); byte[] bs = code.digest(); for (int i = 0; i < bs.length; i++) { int v = bs[i] & 0xFF; if (v < 16) { sb.append(0); } sb.append(Integer.toHexString(v)); } } catch (NoSuchAlgorithmException e) { LOGGER.error("NoSuchAlgorithmException", e); } return sb.toString().toLowerCase(); } /** * md5加密 * * @param str * @return */ public static String encodeMD5WithGBK(String str) { if (null == str) { return null; } StringBuilder sb = new StringBuilder(); try { MessageDigest code = MessageDigest.getInstance("MD5"); code.update(str.getBytes("GBK")); byte[] bs = code.digest(); for (int i = 0; i < bs.length; i++) { int v = bs[i] & 0xFF; if (v < 16) { sb.append(0); } sb.append(Integer.toHexString(v)); } } catch (NoSuchAlgorithmException e) { LOGGER.error("NoSuchAlgorithmException", e); } catch (UnsupportedEncodingException e) { LOGGER.error("UnsupportedEncodingException", e); } return sb.toString().toLowerCase(); } }
RedisUtils
package com.xxx.xxx.common.util; import com.xxx.framework.sedis.ShardedJedisAction; import com.xxx.framework.sedis.ShardedJedisClient; import com.xxx.framework.sedis.impl.ShardedJedisClientImpl; import redis.clients.jedis.Jedis; import redis.clients.jedis.ShardedJedis; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * 〈一句话功能简述〉<br> * 〈功能详细描述〉 * * @author * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */ public class RedisUtil { public static ShardedJedisClient shardedJedisClientEPWM ;//NOSONAR private static final String EPWM = "MEIS"; private static Map<String, ShardedJedisClient> jedisClientConfigMap = new HashMap<String, ShardedJedisClient>(); static{ shardedJedisClientEPWM = new ShardedJedisClientImpl("redis.conf"); jedisClientConfigMap.put(EPWM, shardedJedisClientEPWM); } public static String getString(final String key,String system) { return (jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.get(key); } })); } public static Long deleteKey(final String key,String system) { return (jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.del(key); } })); } public static Long deleteHashKey(final String key,final String field,String system) { return (jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.hdel(key, field); } })); } public static String setString(final String key, final String value, final int seconds,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.setex(key, seconds, value); } }); } public static Long setHash(final String key,final String field,final String value, final int seconds,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { Long result = shardedJedis.hset(key, field, value); shardedJedis.expire(key, seconds); return result; } }); } public static String setHashAll(final String key, final Map<String,String> map, final int seconds,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { String result= shardedJedis.hmset(key, map); shardedJedis.expire(key, seconds); return result; } }); } public static String setHashAll(final String key, final Map<String,String> map,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { String result= shardedJedis.hmset(key, map); return result; } }); } public static String getHash(final String key,final String field,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.hget(key, field); } }); } public static Map<String,String> getHashAll(final String key,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Map<String,String>>() { @Override public Map<String,String> doAction(ShardedJedis shardedJedis) { return shardedJedis.hgetAll(key); } }); } public static void delKey(final String key,String system) { jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.del(key); } }); } public static String setString(final String key, final String value,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.set(key, value); } }); } /** * 对应键的值自增一 * * @param key */ public static Long increaseOne(final String key,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.incr(key); } }); } public static Long increaseOne(final String key,final int seconds,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { shardedJedis.expire(key, seconds); return shardedJedis.incr(key); } }); } public static Long lpush(final String key,final String value,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.lpush(key,value); } }); } public static Long rpush(final String key,final String value,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.rpush(key,value); } }); } public static Long llen(final String key,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { return shardedJedis.llen(key); } }); } public static String rpop(final String key,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.rpop(key); } }); } public static List<String> lRange(final String key,final int start,final int end,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<List<String>>() { @Override public List<String> doAction(ShardedJedis shardedJedis) { return shardedJedis.lrange(key, start, end); } }); } public static String lindex(final String key, final long index,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.lindex(key, index); } }); } public static String lset(final String key,final long index,final String value,String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { return shardedJedis.lset(key, index, value); } }); } public static String batchDel(String system) { return jedisClientConfigMap.get(system).execute(new ShardedJedisAction<String>() { @Override public String doAction(ShardedJedis shardedJedis) { Collection<Jedis> cj= shardedJedis.getAllShards(); Iterator iterator = cj.iterator(); while(iterator.hasNext()) { Jedis jedis = (Jedis)iterator.next(); jedis.flushDB(); } return "true"; } }); } public static Long setNx(final String key, final String value, String system, final int seconds) { return ((Long) (jedisClientConfigMap.get(system).execute(new ShardedJedisAction<Long>() { @Override public Long doAction(ShardedJedis shardedJedis) { shardedJedis.expire(key, seconds); return shardedJedis.setnx(key, value); } }))); } }
JsonConvertUtil :
package com.xxx.xxx.common.util; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.util.HashMap; import java.util.Map; /** * javabean,xml,json转换工具类 * * @author * */ public class JsonConvertUtil { private static final Logger logger = LoggerFactory.getLogger(JsonConvertUtil.class); /** * javaBean,list,array convert to json string */ public static String obj2json(Object obj) { Gson g = new Gson(); return g.toJson(obj); } /** * html不转义 * * @param escaping 是否html转义 */ public static String obj2json(Object obj, boolean escaping) { if (escaping) { return obj2json(obj); } Gson gs = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); return gs.toJson(obj); } /** * json string convert to javaBean */ public static <T> T json2pojo(String jsonStr, Class<T> clazz) { Gson g = new Gson(); return g.fromJson(jsonStr, clazz); } /** * json string convert to javaBean */ public static <T> T json2pojo(String jsonStr, Type type) { Gson g = new Gson(); return (T) g.fromJson(jsonStr, type); } /** * javabean 转化为Map * * @param o * @return */ public static Map<String, Object> doMapParam(Object o) { try { Field[] fileds = o.getClass().getDeclaredFields(); if (fileds == null || fileds.length == 0) { return null; } int len = fileds.length; Map<String, Object> map = new HashMap<String, Object>(); for (int i = 0; i < len; i++) { fileds[i].setAccessible(true); map.put(fileds[i].getName(), fileds[i].get(o)); } return map; } catch (Exception e) { logger.error("doMapParam(Object o) error, o={}", o==null?null:o.toString(), e); } return null; } /** * 功能描述: <br> * 将给定的json串的某个json节点转换为指定的T对象 * * @param jsonStr * @param jsonNodeName,可以通过"."连接的有层次的节点,如:a.b.c * @param toClass * @return * @author * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static <T> T toObject(String jsonStr, String jsonNodeName, Class<T> toClass) { Gson gson = new Gson(); T t; if(jsonNodeName == null || (jsonNodeName = jsonNodeName.trim()).length() == 0) { t = gson.fromJson(jsonStr, toClass); } else { com.google.gson.JsonParser jp = new com.google.gson.JsonParser(); JsonObject jsonObject = jp.parse(jsonStr).getAsJsonObject(); String[] nodeArr = jsonNodeName.split("\\."); Object jsonElement = null; for(String node : nodeArr) { jsonElement = jsonObject.get(node); if(jsonElement instanceof JsonObject) { jsonObject = (JsonObject)jsonElement; } else if(jsonElement instanceof JsonArray) { break; } } jsonElement = (jsonElement == null ? jsonObject : jsonElement); t = gson.fromJson(jsonElement.toString(), toClass); } return t; } /** * 对象转换 * * @param obj * @param clazz * @return * @author * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static <T> T toObject(Object obj, Class<T> clazz) { T t = null; if (obj != null) { t = json2pojo((obj instanceof String ? obj.toString() : obj2json(obj)), clazz); } return t; } /** * 对象转换,会序列化输出值为null的字段 * * @param obj * @param clazz * @return * @author * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static <T> T toObjectSerializeNulls(Object obj, Class<T> clazz) { GsonBuilder gb = new GsonBuilder(); gb.serializeNulls(); Gson gsonSN = gb.create(); T t = null; if (obj != null) { t = gsonSN.fromJson((obj instanceof String ? obj.toString() : gsonSN.toJson(obj)), clazz); } return t; } /** * 转换为json格式字串 * * @param obj * @return * @author * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static String toJson(Object obj) { return obj == null ? null : obj2json(obj); } }
end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类