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