日期:2014-05-17 浏览次数:21187 次
	// java格式化16进制输出
	public static void formatIntTo16(byte[] bytes) {
		String[] resultBytes = new String[bytes.length];
		for (int i = 0; i < bytes.length; i++) {
			resultBytes[i] = Integer.toHexString(bytes[i] & 0xFF);
		}
	}
   //MD5加密
    public static String md5Encode(String strContent) {
    	try {
    		MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        	byte[] tempBytes =  messageDigest.digest(strContent.getBytes("UnicodeLittleUnmarked"));
        	StringBuffer stringBuffer = new StringBuffer();
        	for(byte bytes: tempBytes) {
        		String tempByte = Integer.toHexString(bytes & 0xFF);
        		if(tempByte.length() == 1) {
        			stringBuffer.append("0");
        		}
        		stringBuffer.append(tempByte);
        	}
        	return stringBuffer.toString();
    	} catch(Exception e) {
    		e.printStackTrace();
    	}
    	return null;
    } 
//md5加密
	public static void MD5(string str) {
		string cl1 = str;
		string pwd = "";
		System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
		byte[] s = md5.ComputeHash(Encoding.Unicode.GetBytes(cl1));
		for (int i = 0; i < s.Length; i++) {
			pwd = pwd + s[i].ToString("x");
		}
		Console.Write(pwd);
		Console.WriteLine();
	}
// 3DES加密 基方法
	public static byte[] des3EncodeCBC(byte[] data, byte[] key) throws Exception {
		Key deskey = null;
		DESedeKeySpec spec = new DESedeKeySpec(key);
		SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");
		deskey = keyfactory.generateSecret(spec);
		Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding");
		IvParameterSpec ips = new IvParameterSpec(IV);
		cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);
		return cipher.doFinal(data, 0, data.length);
	}
// 3DES加密算法
	private static bool Encrypt( byte[] key, byte[] input, out byte[] output )
        {
            output = null;
            try
            {
                TripleDESCryptoServiceProvider trippleDesProvider = new TripleDESCryptoServiceProvider();
                ICryptoTransform encryptObj = trippleDesProvider.CreateEncryptor(rkey, IV);
                output = encryptObj.TransformFinalBlock(input, 0, input.Length);
                trippleDesProvider.Clear();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
// 3DES 解密 基方法
	public static byte[] des3DecodeCBC(byte[] data, byte[] key) throws Exception {
		Key deskey = null;
		DESedeKeySpec spec = new DESedeKeySpec(key);
		SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("desede");
		deskey = keyFactory.generateSecret(spec);
		
		Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding");
		IvParameterSpec ips = new IvParameterSpec(IV);
		cipher.init(Cipher.DECRYPT_MODE, deskey, ips);
		return cipher.doFinal(data, 0, data.length);
	}
// 3DES 解密 基方法
	private static bool Decrypt(byte[] key, byte[] input, out byte[] output)
        {
            output = null;
            try
            {
                TripleDESCryptoServiceProvider trippleDesProvider = new TripleDESCryptoServiceProvider();
                ICryptoTransform decryptObj = trippleDesProvider.CreateDecryptor(key,