3 changed files with 2 additions and 242 deletions
@ -1,40 +0,0 @@ |
|||||
package com.xr.device_car.config.common; |
|
||||
|
|
||||
import com.alibaba.excel.converters.Converter; |
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum; |
|
||||
import com.alibaba.excel.metadata.CellData; |
|
||||
import com.alibaba.excel.metadata.GlobalConfiguration; |
|
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
|
||||
|
|
||||
public class TypeNameConverter implements Converter<String> { |
|
||||
@Override |
|
||||
public Class supportJavaTypeKey() { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public CellDataTypeEnum supportExcelTypeKey() { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public CellData convertToExcelData(String s, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { |
|
||||
//表计形状(0圆形指针1扇形指针2数字类表计3状态类表计
|
|
||||
if (s.equals("0")){ |
|
||||
return new CellData("圆形指针"); |
|
||||
}else if (s.equals("1")){ |
|
||||
return new CellData("扇形指针"); |
|
||||
}else if (s.equals("2")){ |
|
||||
return new CellData("数字类表计"); |
|
||||
}else if (s.equals("3")){ |
|
||||
return new CellData("状态类表计"); |
|
||||
}else { |
|
||||
return new CellData(s); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,200 +0,0 @@ |
|||||
package com.xr.device_display.config.utils; |
|
||||
|
|
||||
import com.xr.device_display.config.common.LoginConfig; |
|
||||
import sun.misc.BASE64Decoder; |
|
||||
import sun.misc.BASE64Encoder; |
|
||||
|
|
||||
import javax.crypto.Cipher; |
|
||||
import javax.crypto.KeyGenerator; |
|
||||
import javax.crypto.spec.SecretKeySpec; |
|
||||
import java.math.BigInteger; |
|
||||
import java.security.MessageDigest; |
|
||||
import java.security.SecureRandom; |
|
||||
import java.util.Date; |
|
||||
import java.util.Random; |
|
||||
|
|
||||
public class CryptoUtil { |
|
||||
|
|
||||
public static boolean isNullOrEmpty(String x) { |
|
||||
return x == null || x.length() == 0; |
|
||||
} |
|
||||
|
|
||||
public static void main(String[] args) throws Exception { |
|
||||
String content = "123456"; |
|
||||
System.out.println("加密前:" + content); |
|
||||
System.out.println(new Date().getTime()); |
|
||||
String key = LoginConfig.CryptoKey; |
|
||||
System.out.println("加密密钥和解密密钥:" + key); |
|
||||
String encrypt = aesEncrypt(content, key); |
|
||||
System.out.println("加密后:" + encrypt); |
|
||||
String decrypt = aesDecrypt("EReac0gCF7wAgh38nJfupg==", key); |
|
||||
System.out.println("解密后:" + decrypt); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 将byte[]转为各种进制的字符串 |
|
||||
* |
|
||||
* @param bytes byte[] |
|
||||
* @param radix 可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制 |
|
||||
* @return 转换后的字符串 |
|
||||
*/ |
|
||||
public static String binary(byte[] bytes, int radix) { |
|
||||
return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数
|
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* base 64 encode |
|
||||
* |
|
||||
* @param bytes 待编码的byte[] |
|
||||
* @return 编码后的base 64 code |
|
||||
*/ |
|
||||
public static String base64Encode(byte[] bytes) { |
|
||||
return new BASE64Encoder().encode(bytes); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* base 64 decode |
|
||||
* |
|
||||
* @param base64Code 待解码的base 64 code |
|
||||
* @return 解码后的byte[] |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static byte[] base64Decode(String base64Code) throws Exception { |
|
||||
return isNullOrEmpty(base64Code) ? null : new BASE64Decoder().decodeBuffer(base64Code); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 获取byte[]的md5值 |
|
||||
* |
|
||||
* @param bytes byte[] |
|
||||
* @return md5 |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static byte[] md5(byte[] bytes) throws Exception { |
|
||||
MessageDigest md = MessageDigest.getInstance("MD5"); |
|
||||
md.update(bytes); |
|
||||
|
|
||||
return md.digest(); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 获取字符串md5值 |
|
||||
* |
|
||||
* @param msg |
|
||||
* @return md5 |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static byte[] md5(String msg) throws Exception { |
|
||||
return isNullOrEmpty(msg) ? null : md5(msg.getBytes()); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 结合base64实现md5加密 |
|
||||
* |
|
||||
* @param msg 待加密字符串 |
|
||||
* @return 获取md5后转为base64 |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static String md5Encrypt(String msg) throws Exception { |
|
||||
return isNullOrEmpty(msg) ? null : base64Encode(md5(msg)); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* AES加密 |
|
||||
* |
|
||||
* @param content 待加密的内容 |
|
||||
* @param encryptKey 加密密钥 |
|
||||
* @return 加密后的byte[] |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception { |
|
||||
KeyGenerator kgen = KeyGenerator.getInstance("AES"); |
|
||||
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); |
|
||||
secureRandom.setSeed(encryptKey.getBytes()); |
|
||||
kgen.init(128, secureRandom); |
|
||||
// kgen.init(128, new SecureRandom(encryptKey.getBytes()));
|
|
||||
|
|
||||
Cipher cipher = Cipher.getInstance("AES"); |
|
||||
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES")); |
|
||||
|
|
||||
return cipher.doFinal(content.getBytes("utf-8")); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* AES加密为base 64 code |
|
||||
* |
|
||||
* @param content 待加密的内容 |
|
||||
* @param encryptKey 加密密钥 |
|
||||
* @return 加密后的base 64 code |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static String aesEncrypt(String content, String encryptKey) throws Exception { |
|
||||
return base64Encode(aesEncryptToBytes(content, encryptKey)); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* AES解密 |
|
||||
* |
|
||||
* @param encryptBytes 待解密的byte[] |
|
||||
* @param decryptKey 解密密钥 |
|
||||
* @return 解密后的String |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) throws Exception { |
|
||||
KeyGenerator kgen = KeyGenerator.getInstance("AES"); |
|
||||
|
|
||||
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); |
|
||||
secureRandom.setSeed(decryptKey.getBytes()); |
|
||||
kgen.init(128, secureRandom); |
|
||||
// kgen.init(128, new SecureRandom(decryptKey.getBytes()));
|
|
||||
|
|
||||
Cipher cipher = Cipher.getInstance("AES"); |
|
||||
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES")); |
|
||||
byte[] decryptBytes = cipher.doFinal(encryptBytes); |
|
||||
|
|
||||
return new String(decryptBytes); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 将base 64 code AES解密 |
|
||||
* |
|
||||
* @param encryptStr 待解密的base 64 code |
|
||||
* @param decryptKey 解密密钥 |
|
||||
* @return 解密后的string |
|
||||
* @throws Exception |
|
||||
*/ |
|
||||
public static String aesDecrypt(String encryptStr, String decryptKey) throws Exception { |
|
||||
return isNullOrEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr), decryptKey); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 生成随即密码 |
|
||||
* |
|
||||
* @param pwd_len 生成的密码的总长度 |
|
||||
* @return 密码的字符串 |
|
||||
*/ |
|
||||
public static String genRandomNum(int pwd_len) { |
|
||||
// 35是因为数组是从0开始的,26个字母+10个数字
|
|
||||
final int maxNum = 35; |
|
||||
int i; // 生成的随机数
|
|
||||
int count = 0; // 生成的密码的长度
|
|
||||
char[] str = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '0', '1', '2', '3', '4', |
|
||||
'5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L'}; |
|
||||
|
|
||||
StringBuffer pwd = new StringBuffer(""); |
|
||||
Random r = new Random(); |
|
||||
while (count < pwd_len) { |
|
||||
// 生成随机数,取绝对值,防止生成负数,
|
|
||||
|
|
||||
i = Math.abs(r.nextInt(maxNum)); // 生成的数最大为36-1
|
|
||||
|
|
||||
if (i >= 0 && i < str.length) { |
|
||||
pwd.append(str[i]); |
|
||||
count++; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return pwd.toString(); |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue