java对称加密(DES/DESESE/AES)的简单使用 一时失言乱红尘 2022-07-16 10:20 107阅读 0赞 主类: /** * 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); } }
还没有评论,来说两句吧...