java对称加密(DES/DESESE/AES)的简单使用

来源:互联网 发布:电脑加密软件 编辑:程序博客网 时间:2024/05/09 17:49

主类:

/** * 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);    }}


0 0
原创粉丝点击