/**
* Copyright (c) 2015
*
* Licensed under the UCG License, Version 1.0 (the "License");
*/
package com.siso.app.utils;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
* description : DESUtil加密算法
*
* @version 1.0
* @author Owater
* @createtime : 2015-4-16 下午1:37:33
*
* 修改历史:
* 修改人 修改时间 修改内容
* --------------- ------------------- -----------------------------------
* Owater 2015-4-16 下午1:37:33
*
*/
public class DESUtil {
private static byte[] iv = {1,2,3,4,5,6,7,8};
// private static byte[] iv = {A,1,B,2,C,3,D,4,E,5,F,6,0,7,0,8};
/**
* 加密数据
* @param encryptString 待加密数据
* @param key 密钥
* @return 加密后的数据
*/
public static String encryptDES(String encryptString, String encryptKey) throws Exception {
// IvParameterSpec zeroIv = new IvParameterSpec(new byte[8]);
IvParameterSpec zeroIv = new IvParameterSpec(iv);
SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
byte[] encryptedData = cipher.doFinal(encryptString.getBytes());
return Base64.encode(encryptedData);
}
/**
* 解密数据
* @param decryptString 待解密数据
* @param key 密钥
* @return 解密后的数据
*/
public static String decryptDES(String decryptString, String decryptKey) throws Exception {
byte[] byteMi = new Base64().decode(decryptString);
IvParameterSpec zeroIv = new IvParameterSpec(iv);
// IvParameterSpec zeroIv = new IvParameterSpec(new byte[8]);
SecretKeySpec key = new SecretKeySpec(decryptKey.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);
byte decryptedData[] = cipher.doFinal(byteMi);
return new String(decryptedData);
}
}