|
@@ -0,0 +1,101 @@
|
|
|
+package com.emato.common.utils.oms.request;
|
|
|
+
|
|
|
+import javax.crypto.*;
|
|
|
+import javax.crypto.spec.DESKeySpec;
|
|
|
+import java.security.SecureRandom;
|
|
|
+
|
|
|
+public class DesUtils {
|
|
|
+
|
|
|
+ private static final String DES = "DES";
|
|
|
+ private static final String KEY = "4YztMHI7PsT4rLZN2435";
|
|
|
+
|
|
|
+ private static byte[] encrypt(byte[] src, byte[] key) throws Exception {
|
|
|
+ SecureRandom sr = new SecureRandom();
|
|
|
+ DESKeySpec dks = new DESKeySpec(key);
|
|
|
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
|
|
|
+ SecretKey secretKey = keyFactory.generateSecret(dks);
|
|
|
+ Cipher cipher = Cipher.getInstance(DES);
|
|
|
+ cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr);
|
|
|
+ return cipher.doFinal(src);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static byte[] decrypt(byte[] src, byte[] key) throws Exception {
|
|
|
+ SecureRandom sr = new SecureRandom();
|
|
|
+ DESKeySpec dks = new DESKeySpec(key);
|
|
|
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
|
|
|
+ SecretKey secretKey = keyFactory.generateSecret(dks);
|
|
|
+ Cipher cipher = Cipher.getInstance(DES);
|
|
|
+ cipher.init(Cipher.DECRYPT_MODE, secretKey, sr);
|
|
|
+ return cipher.doFinal(src);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String byte2hex(byte[] b) {
|
|
|
+ String hs = "";
|
|
|
+ String temp = "";
|
|
|
+ for (int n = 0; n < b.length; n++) {
|
|
|
+ temp = (java.lang.Integer.toHexString(b[n] & 0XFF));
|
|
|
+ if (temp.length() == 1)
|
|
|
+ hs = hs + "0" + temp;
|
|
|
+ else
|
|
|
+ hs = hs + temp;
|
|
|
+ }
|
|
|
+ return hs.toUpperCase();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private static byte[] hex2byte(byte[] b) {
|
|
|
+ if ((b.length % 2) != 0)
|
|
|
+ throw new IllegalArgumentException("length not even");
|
|
|
+ byte[] b2 = new byte[b.length / 2];
|
|
|
+ for (int n = 0; n < b.length; n += 2) {
|
|
|
+ String item = new String(b, n, 2);
|
|
|
+ b2[n / 2] = (byte) Integer.parseInt(item, 16);
|
|
|
+ }
|
|
|
+ return b2;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String decode(String src, String key) {
|
|
|
+ String decryptStr = "";
|
|
|
+ try {
|
|
|
+ byte[] decrypt = decrypt(hex2byte(src.getBytes()), key.getBytes());
|
|
|
+ decryptStr = new String(decrypt);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return decryptStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String encode(String src, String key){
|
|
|
+ byte[] bytes = null;
|
|
|
+ String encryptStr = "";
|
|
|
+ try {
|
|
|
+ bytes = encrypt(src.getBytes(), key.getBytes());
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+ if (bytes != null)
|
|
|
+ encryptStr = byte2hex(bytes);
|
|
|
+ return encryptStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解密
|
|
|
+ */
|
|
|
+ public static String decode(String src) {
|
|
|
+ return decode(src, KEY);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加密
|
|
|
+ */
|
|
|
+ public static String encode(String src) {
|
|
|
+ return encode(src, KEY);
|
|
|
+ }
|
|
|
+// public static void main(String[] args) {
|
|
|
+// String ss = "uu123@#$";
|
|
|
+// String encodeSS = encode(ss);
|
|
|
+// System.out.println(encodeSS);
|
|
|
+// String decodeSS = decode(encodeSS);
|
|
|
+// System.out.println(decodeSS);
|
|
|
+// }
|
|
|
+}
|