一个java的des加密解密代码如下:
//package com.visionsky.util;
import java.security.*;
//import java.util.regex.Pattern;
//import java.util.Hashtable;
import javax.crypto.*;
import javax.crypto.spec.*;
import sun.misc.*;
/**
* des加密解密
*/
public class DESPlus {
private static String strDefaultKey = "PLFP"; //默认密钥
private static final byte[] iv = {0x12, 0x34, 0x56, 0x78, (byte) 0x90, (byte) 0xab, (byte) 0xcd, (byte) 0xef};//des 向量
private static BASE64Encoder enc = new BASE64Encoder();//将byte[]转换成String
private static BASE64Decoder dec = new BASE64Decoder(); //将String转换成byte[]
/**
* 加密字节数组
*
* @param arrB
* 需加密的字节数组
* @param key
* 密钥
* @return 加密后的字节数组
* @throws Exception
*/
public static byte[] encrypt(byte[] arrB, String key) throws Exception {
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec ivp = new IvParameterSpec(DESPlus.iv);
Cipher encryptCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
encryptCipher.init(Cipher.ENCRYPT_MODE, secretKey, ivp);
return encryptCipher.doFinal(arrB);
}
/**
* 加密字符串
*
* @param xml
* 需加密的字符串
* @param key
* 密钥
* @return 加密后的字符串
* @throws Exception
*/
public static String encrypt(String xml, String key) throws Exception {
//return DESPlus.enc.encode(encrypt(xml.getBytes(), key));
return new String(encrypt(xml.getBytes(), key));
}
/**
* 使用默认公钥加密字符串
* @param xml 需加密的字符串
* @return 加密后的字符串
* @throws Exception
*/
public static String encrypt(St