DES加密
public class MyClass { static String input="你好"; public void main(String args){jdkDES();} public static void jdkDES(){ try { //生成key KeyGenerator generator = KeyGenerator.getInstance("DES"); //指定 generator.init(56); SecretKey key = generator.generateKey(); //获取key的数组 byte[] keyEncoded = key.getEncoded(); //key的转化 DESKeySpec desKeySpec=new DESKeySpec(keyEncoded); SecretKeyFactory factory=SecretKeyFactory.getInstance("DES"); SecretKey secretKey = factory.generateSecret(desKeySpec); //加密参数 加密的算法/工作方式/填充方式 Cipher cipher=Cipher.getInstance("DES/ECB/PKCSSPadding"); //加密模式 cipher.init(Cipher.ENCRYPT_MODE,secretKey); //参数是要加密的字符数组的形式 byte[] bytes= cipher.doFinal(input.getBytes());
//把数组转化成16进制 String encode = HexBin.encode(bytes); System.out.print(""+encode);//解密 解密和加密的前期工作是一样的 cipher.init(Cipher.DECRYPT_MODE,secretKey); System.out.print(""+new Stirng(bytes));
} catch (Exception e) { e.printStackTrace(); } }}
AES加密public static void jdkAES(){ String str="你好"; try { //生成key KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); keyGenerator.init(128); SecretKey secretKey= keyGenerator.generateKey(); byte[] keyBytes= secretKey.getEncoded(); //key的转换 Key key=new SecretKeySpec(keyBytes,"AES"); //加密 Cipher cipher=Cipher.getInstance("AES/ECB/PACSSPadding"); cipher.init(Cipher.ENCRYPT_MODE,key); byte[] result= cipher.doFinal(str.getBytes()); //转换成byte64位 String s= Base64.encode(result); System.out.print(s); } catch (Exception e) { e.printStackTrace(); }//解密 cipher.init(Cipher.DECRYPT_MODE,key); result=cipher.doFinal(result); System.out.print(new String(}));result