Acerca del ejemplo de código de compensación de cifrado y descifrado java3DES

 

// 3DES加密
    pública  estáticas getEnc3DES de Cuerda (datos de cadena, llave, cadena Cadena iv) lanza la excepción { 
        cifrado cifrado = Cipher.getInstance ( "Desede / CBC / PKCS5Padding" ); 
        DESedeKeySpec dks = new DESedeKeySpec (key.getBytes ("gb2312" )); 
        IvParameterSpec ivs = nuevo IvParameterSpec (iv.getBytes ("gb2312" )); 
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance ("DESede" ); 
        SecretKey securekey = keyFactory.generateSecret (dks); 
        cipher.init (Cipher.ENCRYPT_MODE, securekey, ivs);
        BASE64Encoder base64Encoder  =new BASE64Encoder ();
        return base64Encoder.encode (cipher.doFinal (data.getBytes ("GB2312" ))); 
    }

 

// 3DES 解密
    pública  estática String getDes3DES (datos de cadena, clave de cadena, cadena iv) arroja la excepción { 
        BASE64Decoder base64Decoder = new BASE64Decoder ();
        byte [] databyte = base64Decoder.decodeBuffer (datos); 
        Cipher cipher = Cipher.getInstance ("DESede / CBC / PKCS5Padding" ); 
        DESedeKeySpec dks = new DESedeKeySpec (key.getBytes ("gb2312" )); 
        IvParameterSpec ivs = nuevo IvParameterSpec (iv.getBytes ("gb2312" )); 
        SecretKeyFactory keyFactory= SecretKeyFactory.getInstance ("DESede" ); 
        SecretKey securekey = keyFactory.generateSecret (dks); 
        cipher.init (Cipher.DECRYPT_MODE, securekey, ivs); 
        return  new String (cipher.doFinal (databyte), "GB2312" ); 
    }
    

 

  Nota: El valor CLAVE se genera de acuerdo con sus necesidades. El desplazamiento IV también puede ser generado por usted mismo, este es solo un ejemplo. Los datos de parámetros pasados ​​son de tipo json u otro. Cuando se pasan, se pueden usar como .toString ().

 Cadena estática pública KEY = "***";
    public  static String subStr () lanza Exception { 
        String exOnceByTime = ExDateUtil.exOnceByTime (ExDateUtil.ExDate ()); // 将 2019-04-11 14:33:20 变成 格式 为 20190411143320 
        String IV = StringUtils.substring (exOnceByTime, 0, 8 );
        retorno IV; 
    } 
    //解密数据
    pública  estática JSONObject decodificación (JSONObject JSON) lanza la excepción { 
        datos de objeto = json.get ( "datos" ); 
        Cadena des3des = getDes3DES (data.toString (), KEY, subStr ());
        devuelve JSONObject.fromObject (des3des); 
    }

Supongo que te gusta

Origin www.cnblogs.com/divingCat/p/12699560.html
Recomendado
Clasificación