版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/male09/article/details/80970081
public class AES128 {
static String AES = "AES/ECB/NoPadding";
public AES128() {
}
public static byte[] encrypt(byte[] key, byte[] data) {
try {
byte[] Encrypt_conn = null;
if (data.length % 16 != 0) {
Encrypt_conn = new byte[(data.length / 16 + 1) * 16];
System.arraycopy(data, 0, Encrypt_conn, 0, data.length);
} else {
Encrypt_conn = data;
}
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(AES);
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(Encrypt_conn);
return encrypted;
} catch (Exception var6) {
var6.printStackTrace();
return null;
}
}
public static byte[] decrypt(byte[] key, byte[] encrypted1) {
try {
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(AES);
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] original = cipher.doFinal(encrypted1);
return original;
} catch (Exception var5) {
var5.printStackTrace();
return null;
}
}
}
public class MyDES {
static String DES = "DES/ECB/NoPadding";
static String TriDes = "DESede/ECB/NoPadding";
public MyDES() {
}
/**
* DES 加密
* @param key 8密钥
* @param data
* @return
*/
public static byte[] des_encrypt(byte[] key, byte[] data) {
try {
byte[] enc = null;
byte[] bytReserve = null;
KeySpec ks = new DESKeySpec(key);
SecretKeyFactory kf = SecretKeyFactory.getInstance("DES");
SecretKey ky = kf.generateSecret(ks);
Cipher c = Cipher.getInstance(DES);
c.init(1, ky);
if (data.length % 8 != 0) {
bytReserve = new byte[(data.length / 8 + 1) * 8];
System.arraycopy(data, 0, bytReserve, 0, data.length);
enc = c.doFinal(bytReserve);
} else {
enc = c.doFinal(data);
}
return enc;
} catch (Exception var8) {
var8.printStackTrace();
return null;
}
}
/**
* DES 解密
* @param key 密钥8
* @param data
* @return
*/
public static byte[] des_decrypt(byte[] key, byte[] data) {
try {
KeySpec ks = new DESKeySpec(key);
System.out.println("KeySpec"+ks);
SecretKeyFactory kf = SecretKeyFactory.getInstance("DES");
SecretKey ky = kf.generateSecret(ks);
Cipher c = Cipher.getInstance(DES);
c.init(2, ky);
byte[] dec = c.doFinal(data);
return dec;
} catch (Exception var7) {
return null;
}
}
/**
* 3DES
* @param key 密钥16
* @param data
* @return
*/
public static byte[] trides_encrypt(byte[] key, byte[] data) {
try {
byte[] k = new byte[24];
int len = data.length;
if (data.length % 8 != 0) {
len = data.length - data.length % 8 + 8;
}
byte[] needData = null;
if (len != 0) {
needData = new byte[len];
}
for (int i = 0; i < len; ++i) {
needData[i] = 0;
}
System.arraycopy(data, 0, needData, 0, data.length);
System.out.println(Utils.byte2HexStr(key)+"传入密钥长度:"+key.length);
if (key.length == 16) {
System.arraycopy(key, 0, k, 0, key.length);
System.arraycopy(key, 0, k, 16, 8);
} else {
System.arraycopy(key, 0, k, 0, 24);
}
System.out.println(new String(k)+"密钥长度:"+k.length);
KeySpec ks = new DESedeKeySpec(k);
SecretKeyFactory kf = SecretKeyFactory.getInstance("DESede");
SecretKey ky = kf.generateSecret(ks);
Cipher c = Cipher.getInstance(TriDes);
c.init(1, ky);
byte[] enc = c.doFinal(needData);
return enc;
} catch (Exception var10) {
var10.printStackTrace();
return null;
}
}
/**
* 3DES解密
* @param key 密钥16
* @param data
* @return
*/
public static byte[] trides_decrypt(byte[] key, byte[] data) {
try {
byte[] k = new byte[24];
int len = data.length;
if (data.length % 8 != 0) {
len = data.length - data.length % 8 + 8;
}
byte[] needData = null;
if (len != 0) {
needData = new byte[len];
}
for (int i = 0; i < len; ++i) {
needData[i] = 0;
}
System.arraycopy(data, 0, needData, 0, data.length);
if (key.length == 16) {
System.arraycopy(key, 0, k, 0, key.length);
System.arraycopy(key, 0, k, 16, 8);
} else {
System.arraycopy(key, 0, k, 0, 24);
}
KeySpec ks = new DESedeKeySpec(k);
SecretKeyFactory kf = SecretKeyFactory.getInstance("DESede");
SecretKey ky = kf.generateSecret(ks);
Cipher c = Cipher.getInstance(TriDes);
c.init(2, ky);
byte[] dec = c.doFinal(needData);
return dec;
} catch (Exception var10) {
return null;
}
}
}