Java 3DES加密实例
java 3DES加密实例:
public void getKey(){
for (int i = 0; i < 2; i++) {
try {
String str = "chris1234567";/*定义一个字符串*/
byte[] code = str.getBytes();/*把字符串转为byte数组*/
KeyGenerator ****** = KeyGenerator.getInstance("DESede");/***生成器*/
******.init(168);/*默认168,可为112或168*/
SecretKey secretKey = ******.generateKey();/*生成***/
byte[] key = secretKey.getEncoded();/***字节数组*/
SecretKey sKey = new SecretKeySpec(key, "DESede");/*恢复***/
Cipher cipher = Cipher.getInstance("DESede");/*Cipher完成加密或解密工作类*/
cipher.init(Cipher.ENCRYPT_MODE, sKey);/*对Cipher初始化,加密模式*/
byte[] Key = cipher.doFinal(code);/*加密code*/
String key1 = Base64.getEncoder().encodeToString(Key);/*用base64来转byte加密数据数组,String直接转会出现乱码*/
System.out.println("加密后:"+key1);/*输出加密后数据*/
cipher.init(Cipher.DECRYPT_MODE, sKey);/*Cipher完成加密或解密工作类*/
byte[] key2 = Base64.getDecoder().decode(key1);/*再用base64把刚才的key1转为byte数组*/
byte[] key3 = cipher.doFinal(key2);/*解密key2*/
String key4 = new String(key3);/*解密密文可直接用String转*/
System.out.println("解密后:"+key4);/*输出解密密文*/
}catch (Exception e) {
e.printStackTrace();
}
}
}