Java 3DES加密实例

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();
            }
        }
    }