分享老大寫的des加密工具類,有用的拿走。
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Base64;
public class DESUtilsTest {
private static final String DES = "DES";
private static final String PADDING = "DES/ECB/PKCS5Padding";
private static final String DEFAULT_INCODING = "utf-8";
public final static String encrypt(String code, String key) {
try{
return Base64.encodeBase64String(encrypt(code.getBytes(DEFAULT_INCODING), key.getBytes(DEFAULT_INCODING)));
}catch(Exception e) {
}
return null;
}
public static byte[] encrypt(byte[] code, byte[] key) throws Exception {
SecureRandom sr = new SecureRandom();
//生成密鑰
DESKeySpec dks = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey secretKey = keyFactory.generateSecret(dks);
//進行加密
Cipher cipher = Cipher.getInstance(PADDING);
cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr);
return cipher.doFinal(code);
}
public final static String decrypt(String code, String key) {
try{
return new String(decrypt(Base64.decodeBase64(code), key.getBytes(DEFAULT_INCODING)), DEFAULT_INCODING);
}catch(Exception e) {
}
return null;
}
public static byte[] decrypt(byte[] src, byte[] key) throws Exception {
SecureRandom sr = new SecureRandom();
//生成密鑰
DESKeySpec dks = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey sectetKey = keyFactory.generateSecret(dks);
//進行加密
Cipher cipher = Cipher.getInstance(PADDING);
cipher.init(Cipher.DECRYPT_MODE, sectetKey, sr);
return cipher.doFinal(src);
}
}