1 package com.pff.pff; 2 3 import java.security.SecureRandom; 4 5 import javax.crypto.Cipher; 6 import javax.crypto.KeyGenerator; 7 import javax.crypto.SecretKey; 8 import javax.crypto.SecretKeyFactory; 9 import javax.crypto.spec.DESedeKeySpec; 10 11 import org.apache.commons.codec.binary.Hex; 12 13 public class Des3 { 14 15 private static String test = "pff"; 16 public static void main(String[] args) { 17 testDes(); 18 } 19 public static void testDes() { 20 try { 21 //生成秘钥 22 KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede"); 23 keyGenerator.init(new SecureRandom()); 24 SecretKey generateKey = keyGenerator.generateKey(); 25 byte[] encoded = generateKey.getEncoded(); 26 //秘钥转换 27 DESedeKeySpec desKeySpec = new DESedeKeySpec(encoded); 28 SecretKeyFactory instance = SecretKeyFactory.getInstance("DESede"); 29 SecretKey generateSecret = instance.generateSecret(desKeySpec); 30 //DES加密过程 31 Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5padding"); 32 cipher.init(Cipher.ENCRYPT_MODE, generateSecret); 33 byte[] result = cipher.doFinal(test.getBytes()); 34 System.out.println("DESede加密过程结果= " +Hex.encodeHexString(result)); 35 //解密过程 36 cipher.init(Cipher.DECRYPT_MODE, generateSecret); 37 byte[] result2 = cipher.doFinal(result); 38 System.out.println("DESede解密过程结果= "+new String(result2)); 39 } catch (Exception e) { 40 e.printStackTrace(); 41 } 42 } 43 44 }