1、添加依赖:
<dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version> </dependency>
2、加密工具包:
public class DesTool { private static final String ALGORITHM = "DESede"; protected static Logger logger = LoggerFactory.getLogger(DesTool.class); // 定义 加密算法,可用 DES,DESede,Blowfish // keybyte为加密密钥,长度为24字节 // src为被加密的数据缓冲区(源) /** * 设置数据流为加密模式 * * @param secretKey * @param outputStream * @return */ public static CipherOutputStream encryptMode(SecretKey secretKey, OutputStream outputStream) { try { // 加密 Cipher c1 = Cipher.getInstance(ALGORITHM); c1.init(Cipher.ENCRYPT_MODE, secretKey); return new CipherOutputStream(outputStream, c1); } catch (Exception e) { logger.error(e.getMessage()); } return null; } /** * 设置数据流为加密模式 * * @param des3Key * @param outputStream * @return */ public static CipherOutputStream encryptMode(String des3Key, OutputStream outputStream) { // 生成密钥 SecretKey secretKey = new SecretKeySpec(des3Key.getBytes(), ALGORITHM); return encryptMode(secretKey, outputStream); } /** * 设置数据流为解密模式 * * @param des3Key * @param inputStream * @return */ public static CipherInputStream decryptMode(String des3Key, InputStream inputStream) { // 生成密钥 // 解密 SecretKey deskey = new SecretKeySpec(des3Key.getBytes(), ALGORITHM); return decryptMode(deskey, inputStream); } /** * 设置数据流为解密模式 * * @param secretKey * @param inputStream * @return */ public static CipherInputStream decryptMode(SecretKey secretKey, InputStream inputStream) { try { Cipher c1 = Cipher.getInstance(ALGORITHM); c1.init(Cipher.DECRYPT_MODE, secretKey); return new CipherInputStream(inputStream, c1); }catch(Exception e){ logger.error(e.getMessage()); } return null; } public static String encode3Des(String key,String srcStr){ SecretKey secretKey; try { byte[] src = srcStr.getBytes("UTF-8"); secretKey = new SecretKeySpec(key.getBytes(), ALGORITHM); //加密 Cipher c1 = Cipher.getInstance("DESede"); c1.init(Cipher.ENCRYPT_MODE, secretKey); String pwd = Base64.encodeBase64String(c1.doFinal(src)); return pwd; }catch(Exception e){ logger.error(e.getMessage()); } return null; } public static String decode3Des(String key, String desStr){ Base64 base64 = new Base64(); SecretKey secretKey; byte[] src = base64.decode(desStr); try { //生成密钥 secretKey = new SecretKeySpec(key.getBytes(), ALGORITHM); //解密 Cipher c1 = Cipher.getInstance("DESede"); c1.init(Cipher.DECRYPT_MODE, secretKey); String pwd = new String(c1.doFinal(src)); return pwd; }catch(Exception e){ logger.error(e.getMessage()); } return null; } public