private static final Cipher DES_CIPHER; static { try { DES_CIPHER = Cipher.getInstance("DESede/ECB/PKCS5Padding"); } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { throw Throwables.propagate(e); } } public static String encryptDES(String encryptString, String encryptKey) { try { DES_CIPHER.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(IcbcBindConstant.ENCODING_GBK), "DESede")); byte[] encryptedData = DES_CIPHER.doFinal(encryptString.getBytes(IcbcBindConstant.ENCODING_GBK)); String hexData = Hex.encodeHexString(encryptedData).toUpperCase(); return StringUtils.leftPad(String.valueOf(hexData.length()), 6, '0') + hexData; } catch (Throwable e) { throw Throwables.propagate(e); } } public static String decryptDES(String decryptString, String decryptKey) { try { DES_CIPHER.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(IcbcBindConstant.ENCODING_GBK), "DESede")); byte[] decryptedData = DES_CIPHER.doFinal(Hex.decodeHex(decryptString.substring(6).toCharArray())); return new String(decryptedData, IcbcBindConstant.ENCODING_GBK); } catch (Throwable e) { throw Throwables.propagate(e); } }