· 4 years ago · Jul 19, 2021, 05:58 PM
1package BOOT-INF.classes.com.zykj.ipfs.util;
2
3import com.zykj.ipfs.util.Base64;
4import java.security.SecureRandom;
5import java.util.HashMap;
6import java.util.Map;
7import javax.crypto.Cipher;
8import javax.crypto.KeyGenerator;
9import javax.crypto.SecretKey;
10import javax.crypto.SecretKeyFactory;
11import javax.crypto.spec.DESKeySpec;
12import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14import org.springframework.util.StringUtils;
15
16public class DESEncodeUtil {
17 private static Logger logger = LoggerFactory.getLogger(com.zykj.ipfs.util.DESEncodeUtil.class);
18
19 private static final String DES = "DES";
20
21 private static final String des_key = "oWtPBKd1ZBk=";
22
23 public static String genKeyDES() throws Exception {
24 KeyGenerator keyGen = KeyGenerator.getInstance("DES");
25 keyGen.init(56);
26 SecretKey key = keyGen.generateKey();
27 String base64Str = byte2base64(key.getEncoded());
28 return base64Str;
29 }
30
31 private static String byte2base64(byte[] bytes) {
32 Base64 base64 = new Base64();
33 return Base64.encode(bytes);
34 }
35
36 public static String encrypt(String data) {
37 String strs = "";
38 try {
39 byte[] bt = encrypt(data.getBytes(), "oWtPBKd1ZBk=".getBytes());
40 new Base64();
41 strs = Base64.encode(bt);
42 } catch (Exception e) {
43 e.printStackTrace();
44 }
45 return strs;
46 }
47
48 public static String decrypt(String data) {
49 if (data == null)
50 return null;
51 String str = "";
52 try {
53 Base64 decoder = new Base64();
54 byte[] buf = Base64.decode(data);
55 byte[] bt = decrypt(buf, "oWtPBKd1ZBk=".getBytes());
56 str = new String(bt);
57 } catch (Exception e) {
58 e.printStackTrace();
59 }
60 return str;
61 }
62
63 public static Map<String, String> decryptParam(String param) {
64 if (StringUtils.isEmpty(param))
65 return null;
66 String paramStr = decrypt(param);
67 String[] paramArr = paramStr.split("&");
68 Map<String, String> paramMap = new HashMap<>();
69 for (String p : paramArr) {
70 String[] pArr = p.split("=");
71 paramMap.put(pArr[0], pArr[1]);
72 }
73 return paramMap;
74 }
75
76 private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
77 SecureRandom sr = new SecureRandom();
78 DESKeySpec dks = new DESKeySpec(key);
79 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
80 SecretKey securekey = keyFactory.generateSecret(dks);
81 Cipher cipher = Cipher.getInstance("DES");
82 cipher.init(1, securekey, sr);
83 return cipher.doFinal(data);
84 }
85
86 private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
87 SecureRandom sr = new SecureRandom();
88 DESKeySpec dks = new DESKeySpec(key);
89 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
90 SecretKey securekey = keyFactory.generateSecret(dks);
91 Cipher cipher = Cipher.getInstance("DES");
92 cipher.init(2, securekey, sr);
93 return cipher.doFinal(data);
94 }
95
96 public static void main(String[] args) throws Exception {
97 String r = "peppaextestpwd";
98 System.out.println("+ r);
99 StringBuffer stringBuffer = new StringBuffer(r);
100 r = stringBuffer.insert(3, r.charAt(r.length() - 1)).toString();
101 r = stringBuffer.insert(1, r.charAt(r.length() - 2)).toString();
102 r = stringBuffer.insert(5, r.charAt(r.length() - 2)).toString();
103 r = encrypt(r);
104 System.out.println("+ r);
105 String a = decrypt(r);
106 String substring = a.substring(0, a.length() - 3);
107 StringBuffer buffer = new StringBuffer(substring);
108 buffer = buffer.deleteCharAt(5);
109 buffer = buffer.deleteCharAt(1);
110 String string = buffer.deleteCharAt(3).toString();
111 System.out.println("+ string);
112 System.out.println(string);
113 }
114}
115