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

posted @   杨岂  阅读(264)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· .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技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示