123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.caimei.util.helipay;
- import javax.crypto.*;
- import javax.crypto.spec.SecretKeySpec;
- import java.io.UnsupportedEncodingException;
- import java.security.InvalidKeyException;
- import java.security.NoSuchAlgorithmException;
- public class DesUtils {
- public static final String ENCODE = "UTF-8";
- private DesUtils() {
- }
- public static String encode(String key, String data) throws NoSuchPaddingException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, InvalidKeyException {
- try {
- byte[] keyByte = key.getBytes(ENCODE);
- byte[] dataByte = data.getBytes(ENCODE);
- byte[] valueByte = des3Encryption(
- keyByte, dataByte);
- String value = new String(Base64.encodeBase64(valueByte), ENCODE);
- return value;
- } catch (Exception e) {
- System.err.println("3des加密失败:" + e.getMessage());
- throw e;
- }
- }
- public static String decode(String key, String value) throws NoSuchPaddingException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, InvalidKeyException {
- try {
- byte[] keyByte = key.getBytes(ENCODE);
- byte[] bytes = value.getBytes(ENCODE);
- byte[] dataByte = des3Decryption(keyByte,
- Base64.decode(bytes));
- String data = new String(dataByte, ENCODE);
- return data;
- } catch (Exception e) {
- System.err.println("3des解密失败:" + e.getMessage());
- throw e;
- }
- }
- private static byte[] des3Encryption(byte[] key, byte[] data) throws
- NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException,
- BadPaddingException, IllegalBlockSizeException, IllegalStateException {
- final String Algorithm = "DESede";
- SecretKey deskey = new SecretKeySpec(key, Algorithm);
- Cipher c1 = Cipher.getInstance(Algorithm);
- c1.init(Cipher.ENCRYPT_MODE, deskey);
- return c1.doFinal(data);
- }
- private static byte[] des3Decryption(byte[] key, byte[] data) throws
- NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException,
- BadPaddingException, IllegalBlockSizeException, IllegalStateException {
- final String Algorithm = "DESede";
- SecretKey deskey = new SecretKeySpec(key, Algorithm);
- Cipher c1 = Cipher.getInstance(Algorithm);
- c1.init(Cipher.DECRYPT_MODE, deskey);
- return c1.doFinal(data);
- }
- }
|