From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期五, 01 十一月 2024 15:11:19 +0800
Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成"

---
 Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/DesUtil.java |  208 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 208 insertions(+), 0 deletions(-)

diff --git a/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/DesUtil.java b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/DesUtil.java
new file mode 100644
index 0000000..b5eb28c
--- /dev/null
+++ b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/DesUtil.java
@@ -0,0 +1,208 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 鍗㈡槬姊� (596392912@qq.com)
+ */
+package org.springblade.core.tool.utils;
+
+import org.springframework.lang.Nullable;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.DESKeySpec;
+import java.util.Objects;
+
+/**
+ * DES鍔犺В瀵嗗鐞嗗伐鍏�
+ *
+ * @author L.cm
+ */
+public class DesUtil {
+	/**
+	 * 鏁板瓧绛惧悕锛屽瘑閽ョ畻娉�
+	 */
+	public static final String DES_ALGORITHM = "DES";
+
+	/**
+	 * 鐢熸垚 des 瀵嗛挜
+	 *
+	 * @return 瀵嗛挜
+	 */
+	public static String genDesKey() {
+		return StringUtil.random(16);
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data     byte array
+	 * @param password 瀵嗛挜
+	 * @return des hex
+	 */
+	public static String encryptToHex(byte[] data, String password) {
+		return HexUtil.encodeToString(encrypt(data, password));
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data     瀛楃涓插唴瀹�
+	 * @param password 瀵嗛挜
+	 * @return des hex
+	 */
+	@Nullable
+	public static String encryptToHex(@Nullable String data, String password) {
+		if (StringUtil.isBlank(data)) {
+			return null;
+		}
+		byte[] dataBytes = data.getBytes(Charsets.UTF_8);
+		return encryptToHex(dataBytes, password);
+	}
+
+	/**
+	 * DES瑙e瘑
+	 *
+	 * @param data     瀛楃涓插唴瀹�
+	 * @param password 瀵嗛挜
+	 * @return des context
+	 */
+	@Nullable
+	public static String decryptFormHex(@Nullable String data, String password) {
+		if (StringUtil.isBlank(data)) {
+			return null;
+		}
+		byte[] hexBytes = HexUtil.decode(data);
+		return new String(decrypt(hexBytes, password), Charsets.UTF_8);
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data     byte array
+	 * @param password 瀵嗛挜
+	 * @return des hex
+	 */
+	public static String encryptToBase64(byte[] data, String password) {
+		return Base64Util.encodeToString(encrypt(data, password));
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data     瀛楃涓插唴瀹�
+	 * @param password 瀵嗛挜
+	 * @return des hex
+	 */
+	@Nullable
+	public static String encryptToBase64(@Nullable String data, String password) {
+		if (StringUtil.isBlank(data)) {
+			return null;
+		}
+		byte[] dataBytes = data.getBytes(Charsets.UTF_8);
+		return encryptToBase64(dataBytes, password);
+	}
+
+	/**
+	 * DES瑙e瘑
+	 *
+	 * @param data     瀛楃涓插唴瀹�
+	 * @param password 瀵嗛挜
+	 * @return des context
+	 */
+	public static byte[] decryptFormBase64(byte[] data, String password) {
+		byte[] dataBytes = Base64Util.decode(data);
+		return decrypt(dataBytes, password);
+	}
+
+	/**
+	 * DES瑙e瘑
+	 *
+	 * @param data     瀛楃涓插唴瀹�
+	 * @param password 瀵嗛挜
+	 * @return des context
+	 */
+	@Nullable
+	public static String decryptFormBase64(@Nullable String data, String password) {
+		if (StringUtil.isBlank(data)) {
+			return null;
+		}
+		byte[] dataBytes = Base64Util.decodeFromString(data);
+		return new String(decrypt(dataBytes, password), Charsets.UTF_8);
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data   鍐呭
+	 * @param desKey 瀵嗛挜
+	 * @return byte array
+	 */
+	public static byte[] encrypt(byte[] data, byte[] desKey) {
+		return des(data, desKey, Cipher.ENCRYPT_MODE);
+	}
+
+	/**
+	 * DES鍔犲瘑
+	 *
+	 * @param data   鍐呭
+	 * @param desKey 瀵嗛挜
+	 * @return byte array
+	 */
+	public static byte[] encrypt(byte[] data, String desKey) {
+		return encrypt(data, Objects.requireNonNull(desKey).getBytes(Charsets.UTF_8));
+	}
+
+	/**
+	 * DES瑙e瘑
+	 *
+	 * @param data   鍐呭
+	 * @param desKey 瀵嗛挜
+	 * @return byte array
+	 */
+	public static byte[] decrypt(byte[] data, byte[] desKey) {
+		return des(data, desKey, Cipher.DECRYPT_MODE);
+	}
+
+	/**
+	 * DES瑙e瘑
+	 *
+	 * @param data   鍐呭
+	 * @param desKey 瀵嗛挜
+	 * @return byte array
+	 */
+	public static byte[] decrypt(byte[] data, String desKey) {
+		return decrypt(data, Objects.requireNonNull(desKey).getBytes(Charsets.UTF_8));
+	}
+
+	/**
+	 * DES鍔犲瘑/瑙e瘑鍏叡鏂规硶
+	 *
+	 * @param data   byte鏁扮粍
+	 * @param desKey 瀵嗛挜
+	 * @param mode   鍔犲瘑锛歿@link Cipher#ENCRYPT_MODE}锛岃В瀵嗭細{@link Cipher#DECRYPT_MODE}
+	 * @return des
+	 */
+	private static byte[] des(byte[] data, byte[] desKey, int mode) {
+		try {
+			SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES_ALGORITHM);
+			Cipher cipher = Cipher.getInstance(DES_ALGORITHM);
+			DESKeySpec desKeySpec = new DESKeySpec(desKey);
+			cipher.init(mode, keyFactory.generateSecret(desKeySpec), Holder.SECURE_RANDOM);
+			return cipher.doFinal(data);
+		} catch (Exception e) {
+			throw Exceptions.unchecked(e);
+		}
+	}
+
+}

--
Gitblit v1.9.3