(1)Key->SecretKey接口(对称)
KeySpec->SecreteKeySpec->DesKeySpec->描述秘钥
Cipher->加解密工具
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
public class DECoder {
public static String AlgorithmOfKey = "DES";
public static SecretKey getKey(byte[] key) throws Exception{
DESKeySpec dsk = new DESKeySpec(key);
return SecretKeyFactory.getInstance(AlgorithmOfKey).generateSecret(dsk);
}
public static byte[] decrypt(byte[] data, byte[] key)throws Exception{
SecretKey sk = getKey(key);
Cipher cipher = Cipher.getInstance(AlgorithmOfKey);
cipher.init(Cipher.DECRYPT_MODE, sk);
return cipher.doFinal(data);
}
public static byte[] encrypt(byte[] data, byte[] key)throws Exception{
SecretKey sk = getKey(key);
Cipher cipher = Cipher.getInstance(AlgorithmOfKey);
cipher.init(Cipher.ENCRYPT_MODE, sk);
// byte[] bs =cipher.update(data);
return cipher.doFinal(data);
}
public static void printBytes(byte[] bytes){
System.out.println(new HexBinaryAdapter().marshal(bytes));
}
/**
* @param args
*/
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
byte[] bytes = new byte[20];
bytes[1] =19;
bytes[2] = 5;
byte[] key = new byte[10];
printBytes(bytes);
byte[] ci = encrypt(bytes, key);
printBytes(ci);
printBytes(decrypt(ci, key));
}
}