|
|
@@ -0,0 +1,59 @@
|
|
|
+package io.jpress.utils;
|
|
|
+/**
|
|
|
+ * Created by A007 on 2016/12/29.
|
|
|
+ * 北京滔米科技有限公司 CloudPass项目
|
|
|
+ */
|
|
|
+
|
|
|
+import javax.crypto.Cipher;
|
|
|
+import javax.crypto.SecretKey;
|
|
|
+import javax.crypto.SecretKeyFactory;
|
|
|
+import javax.crypto.spec.DESKeySpec;
|
|
|
+import java.security.SecureRandom;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 解密
|
|
|
+ */
|
|
|
+public class MyDecryptUtils {
|
|
|
+ /**
|
|
|
+ * 对数据进行DES加密.
|
|
|
+ * @param data 待进行DES加密的数据
|
|
|
+ * @return 返回经过DES加密后的数据
|
|
|
+ * @throws Exception
|
|
|
+ * @author <a href="mailto:xiexingxing1121@126.com" mce_href="mailto:xiexingxing1121@126.com">AmigoXie</a>
|
|
|
+ * Creation date: 2007-7-31 - 下午12:06:24
|
|
|
+ */
|
|
|
+ public final static String decrypt(String data) throws Exception {
|
|
|
+ return new String(decrypt(hex2byte(data.getBytes()),"kEHrDooxWHCWtfeSxvDvgqZq".getBytes()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
|
|
|
+ // DES算法要求有一个可信任的随机数源
|
|
|
+ SecureRandom sr = new SecureRandom();
|
|
|
+ // 从原始密匙数据创建一个DESKeySpec对象
|
|
|
+ DESKeySpec dks = new DESKeySpec(key);
|
|
|
+ // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成
|
|
|
+ // 一个SecretKey对象
|
|
|
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
|
|
|
+ SecretKey securekey = keyFactory.generateSecret(dks);
|
|
|
+ // Cipher对象实际完成解密操作
|
|
|
+ Cipher cipher = Cipher.getInstance("DES");
|
|
|
+ // 用密匙初始化Cipher对象
|
|
|
+ cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
|
|
|
+ // 现在,获取数据并解密
|
|
|
+ // 正式执行解密操作
|
|
|
+ return cipher.doFinal(data);
|
|
|
+ }
|
|
|
+ public static byte[] hex2byte(byte[] b) {
|
|
|
+ if ((b.length % 2) != 0)
|
|
|
+ throw new IllegalArgumentException("长度不是偶数");
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|