主类:
/**
* Created by cuboo on 2016/10/14.
*/
public class Main {
public static void main(String agrs[]) throws Exception {
//String keyType = "DES"; DES的使用
//int keysize = 56;
//DESede加密的使用
// String keyType = "DESede";
//int keysize = 168;//112/168
//AES的加密
String keyType = "AES";
int keysize = 128;//192/256
byte[] data = "abcdefg".getBytes();
byte[] key = DEScode.InitKey(keyType,keysize);
byte[] encryptDate = DEScode.encrypt(key,keyType,data);
byte[] decryptData = DEScode.decrypt(key,keyType,encryptDate);
System.out.println(bytesToHexString(key));
System.out.println(bytesToHexString(encryptDate));
System.out.println(new String(decryptData));
}
public static String bytesToHexString(byte[] data){
StringBuilder strb = new StringBuilder();
for (int i = 0; i < data.length; i++) {
int s = data[i] & 0xff;
String str = Integer.toHexString(s);
if (str.length() < 2){
strb.append(0);
}else {
strb.append(str);
}
}
return strb.toString();
}
}
方法类:
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
/**
* Created by cuboo on 2016/10/14.
*/
public class DEScode {
/*
*生成秘钥
*/
public static byte[] InitKey(String keyType,int keysize) throws NoSuchAlgorithmException {
KeyGenerator keyGenerator = KeyGenerator.getInstance(keyType);
keyGenerator.init(keysize);
SecretKey secretKey = keyGenerator.generateKey();
return secretKey.getEncoded();
}
/*
*加密
*/
public static byte[] encrypt(byte[] key,String keyType,byte[] data)
throws NoSuchPaddingException, NoSuchAlgorithmException,
InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
SecretKey secretKey = new SecretKeySpec(key,keyType);
Cipher cipher = Cipher.getInstance(keyType);
cipher.init(Cipher.ENCRYPT_MODE,secretKey);
return cipher.doFinal(data);
}
/*
*解密
*/
public static byte[] decrypt(byte[] key,String keyType,byte[] data)
throws NoSuchPaddingException, NoSuchAlgorithmException,
InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
SecretKey secretKey = new SecretKeySpec(key,keyType);
Cipher cipher = Cipher.getInstance(keyType);
cipher.init(Cipher.DECRYPT_MODE,secretKey);
return cipher.doFinal(data);
}
}