All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.app.common.encrypt.EncryptionUtil Maven / Gradle / Ivy

package com.app.common.encrypt;

import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;
import com.app.common.utils.RandomUtil;

public class EncryptionUtil {
	private static Logger logger = LoggerFactory.getLogger(EncryptionUtil.class);

	public static String DecryptData(boolean isencry, String content, String privatekey) throws Exception {
		String str = content;
		if (isencry) {

			EncryData ed = JSON.parseObject(content, EncryData.class);
			// 解密
			str = DecryptData(isencry, ed.data, ed.encryptkey, privatekey);

		}
		return str;
	}

	public static String DecryptData(boolean isencry, String data, String encryptkey, String privatekey)
			throws Exception {
		String str = data;
		if (isencry) {

			String AESKey = RSA.decrypt(encryptkey, privatekey);
			String decryptData = AES.decryptFromBase64(data, AESKey);
			str = decryptData;
			// logger.info("decryptData:{}", str);

		}
		return str;
	}

	public static String EncryData(boolean isencry, String content, String publickey) throws Exception {
		String str = content;
		if (isencry) {

			EncryData ed = new EncryData();
			String AESKey = RandomUtil.getRandom(16);
			ed.data = AES.encryptToBase64(content, AESKey);
			ed.encryptkey = RSA.encrypt(AESKey, publickey);
			str = JSON.toJSONString(ed);
			// logger.info("encryData:{}", str);

		}
		return str;
	}

	public static Object EncryData(boolean isencry, Object o, String publickey) throws Exception {
		Object obj = o;
		if (isencry) {

			String content = JSON.toJSONString(o);
			EncryData ed = new EncryData();
			String AESKey = RandomUtil.getRandom(16);
			ed.data = AES.encryptToBase64(content, AESKey);
			ed.encryptkey = RSA.encrypt(AESKey, publickey);
			obj = ed;

		}
		return obj;
	}

	public static Map EncryDataToMap(boolean isencry, Object o, String publickey) {
		Map map = new HashMap();
		if (isencry) {
			try {
				String content = JSON.toJSONString(o);
				EncryData ed = new EncryData();
				String AESKey = RandomUtil.getRandom(16);
				ed.data = AES.encryptToBase64(content, AESKey);
				ed.encryptkey = RSA.encrypt(AESKey, publickey);
				map.put("data", ed.data);
				map.put("encryptkey", ed.encryptkey);
			} catch (Exception e) {
				logger.error("", e);
			}
		}
		return map;
	}

	// 对字符串进行md5加密
	public static String md5(String str) {
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(str.getBytes());

			byte[] b = md.digest();
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < b.length; i++) {
				int v = (int) b[i];
				v = v < 0 ? 0x100 + v : v;
				String cc = Integer.toHexString(v);
				if (cc.length() == 1)
					sb.append('0');
				sb.append(cc);
			}

			return sb.toString();
		} catch (Exception e) {
		}
		return "";
	}

	// 对字符串进行sha256加密
	public static String sha256(String str) {
		try {
			MessageDigest md = MessageDigest.getInstance("SHA-256");
			md.update(str.getBytes());

			byte[] b = md.digest();
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < b.length; i++) {
				int v = (int) b[i];
				v = v < 0 ? 0x100 + v : v;
				String cc = Integer.toHexString(v);
				if (cc.length() == 1)
					sb.append('0');
				sb.append(cc);
			}

			return sb.toString();
		} catch (Exception e) {
		}
		return "";
	}

	// 对字符串进行sha1加密
	public static String sha1(String str) {
		try {
			MessageDigest md = MessageDigest.getInstance("SHA-1");
			md.update(str.getBytes());

			byte[] b = md.digest();
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < b.length; i++) {
				int v = (int) b[i];
				v = v < 0 ? 0x100 + v : v;
				String cc = Integer.toHexString(v);
				if (cc.length() == 1)
					sb.append('0');
				sb.append(cc);
			}

			return sb.toString();
		} catch (Exception e) {
		}
		return "";
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy