import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import javax.xml.bind.DatatypeConverter;
import org.apache.commons.codec.binary.Hex;
/**
* 对应数据库加解密函数
* @Copyright: (C),2019, info. Co., Ltd.
* @ClassName: EncryptUtil
* @Author: XXXXXX
* @Date: 2020年2月14日 上午11:34:57
*/
public class EncryptUtil {
private static String key = “tnb12345”;
public static void main(String[] args) {
System.out.println(DECRYPT_DES(“320102199003072477”));
System.out.println(ENCRYPT_DES(“37AD0FDC82E65E3745F3E9D608D244F3B8DA813A0434B06E”));
}
//对应数据库DECRYPT_DES函数
public static String DECRYPT_DES(String inStr) {
try {
DESKeySpec desKey = new DESKeySpec(key.getBytes());
SecretKey securekey = SecretKeyFactory.getInstance(“DES”).generateSecret(desKey);
Cipher cipher = Cipher.getInstance(“DES/CBC/NoPadding”);
cipher.init(Cipher.ENCRYPT_MODE, securekey, new IvParameterSpec(new byte[8]));
byte[] inBytes = new byte[((int) (inStr.length() / 8) + 1) * 8];
for (int i = 0; i < inStr.length(); i++) {
inBytes[i] = inStr.getBytes()[i];
}
byte[] enBytes = cipher.doFinal(inBytes);
String hexStr = DatatypeConverter.printHexBinary(enBytes);
return hexStr;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//对应数据库ENCRYPT_DES函数
public static String ENCRYPT_DES(String encryptStr) {
try {
DESKeySpec desKey = new DESKeySpec(key.getBytes());
SecretKey securekey = SecretKeyFactory.getInstance(“DES”).generateSecret(desKey);
Cipher cipher = Cipher.getInstance(“DES/CBC/NoPadding”);
cipher.init(Cipher.DECRYPT_MODE, securekey, new IvParameterSpec(new byte[8]));
byte[] decryptBytes = cipher.doFinal(Hex.decodeHex(encryptStr.toCharArray()));
return new String(decryptBytes).trim();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}