读书人

JAVA加密解密工具种

发布时间: 2013-03-06 16:20:31 作者: rapoo

JAVA加密解密工具类

package cn.com.hkgt.apps.util;
2JAVA加密解密工具种
3JAVA加密解密工具种
4JAVA加密解密工具种import java.security.*;
5JAVA加密解密工具种import javax.crypto.Cipher;
6JAVA加密解密工具种import javax.crypto.SecretKey;
7JAVA加密解密工具种import javax.crypto.SecretKeyFactory;
8JAVA加密解密工具种import javax.crypto.spec.DESKeySpec;
9JAVA加密解密工具种
10JAVA加密解密工具种JAVA加密解密工具种/** *//**
11JAVA加密解密工具种 * 字符串工具集合
12JAVA加密解密工具种*/
13JAVA加密解密工具种JAVA加密解密工具种public class StringUtils JAVA加密解密工具种{
14JAVA加密解密工具种
15JAVA加密解密工具种private static final String PASSWORD_CRYPT_KEY = "cindaportal";
16JAVA加密解密工具种private final static String DES = "DES";
17JAVA加密解密工具种
18JAVA加密解密工具种JAVA加密解密工具种/** *//**
19JAVA加密解密工具种 * 加密
20JAVA加密解密工具种 * @param src 数据源
21JAVA加密解密工具种 * @param key 密钥,长度必须是8的倍数
22JAVA加密解密工具种 * @return 返回加密后的数据
23JAVA加密解密工具种 * @throws Exception
24JAVA加密解密工具种*/
25JAVA加密解密工具种JAVA加密解密工具种public static byte[] encrypt(byte[] src, byte[] key)throws Exception JAVA加密解密工具种{
26JAVA加密解密工具种//DES算法要求有一个可信任的随机数源
27JAVA加密解密工具种 SecureRandom sr = new SecureRandom();
28JAVA加密解密工具种// 从原始密匙数据创—ESKeySpec对象
29JAVA加密解密工具种 DESKeySpec dks = new DESKeySpec(key);
30JAVA加密解密工具种// 创建一个密匙工厂,然后用它把DESKeySpec转换成
31JAVA加密解密工具种// 一个SecretKey对象
32JAVA加密解密工具种 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
33JAVA加密解密工具种 SecretKey securekey = keyFactory.generateSecret(dks);
34JAVA加密解密工具种// Cipher对象实际完成加密操作
35JAVA加密解密工具种 Cipher cipher = Cipher.getInstance(DES);
36JAVA加密解密工具种// 用密匙初始化Cipher对象
37JAVA加密解密工具种 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
38JAVA加密解密工具种// 现在,获取数据并加密
39JAVA加密解密工具种// 正式执行加密操作
40JAVA加密解密工具种 return cipher.doFinal(src);
41JAVA加密解密工具种 }
42JAVA加密解密工具种
43JAVA加密解密工具种JAVA加密解密工具种/** *//**
44JAVA加密解密工具种 * 解密
45JAVA加密解密工具种 * @param src 数据源
46JAVA加密解密工具种 * @param key 密钥,长度必须是8的倍数
47JAVA加密解密工具种 * @return 返回解密后的原始数据
48JAVA加密解密工具种 * @throws Exception
49JAVA加密解密工具种*/
50JAVA加密解密工具种JAVA加密解密工具种public static byte[] decrypt(byte[] src, byte[] key)throws Exception JAVA加密解密工具种{
51JAVA加密解密工具种// DES算法要求有一个可信任的随机数源
52JAVA加密解密工具种 SecureRandom sr = new SecureRandom();
53JAVA加密解密工具种// 从原始密匙数据创建一个DESKeySpec对象
54JAVA加密解密工具种 DESKeySpec dks = new DESKeySpec(key);
55JAVA加密解密工具种// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成
56JAVA加密解密工具种// 一个SecretKey对象
57JAVA加密解密工具种 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
58JAVA加密解密工具种 SecretKey securekey = keyFactory.generateSecret(dks);
59JAVA加密解密工具种// Cipher对象实际完成解密操作
60JAVA加密解密工具种 Cipher cipher = Cipher.getInstance(DES);
61JAVA加密解密工具种// 用密匙初始化Cipher对象
62JAVA加密解密工具种 cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
63JAVA加密解密工具种// 现在,获取数据并解密
64JAVA加密解密工具种// 正式执行解密操作
65JAVA加密解密工具种 return cipher.doFinal(src);
66JAVA加密解密工具种 }
67JAVA加密解密工具种JAVA加密解密工具种/** *//**
68JAVA加密解密工具种 * 密码解密
69JAVA加密解密工具种 * @param data
70JAVA加密解密工具种 * @return
71JAVA加密解密工具种 * @throws Exception
72JAVA加密解密工具种*/
73JAVA加密解密工具种JAVA加密解密工具种public final static String decrypt(String data)JAVA加密解密工具种{
74JAVA加密解密工具种JAVA加密解密工具种try JAVA加密解密工具种{
75JAVA加密解密工具种return new String(decrypt(hex2byte(data.getBytes()),PASSWORD_CRYPT_KEY.getBytes()));
76JAVA加密解密工具种JAVA加密解密工具种 }catch(Exception e) JAVA加密解密工具种{
77JAVA加密解密工具种 }
78JAVA加密解密工具种return null;
79JAVA加密解密工具种 }
80JAVA加密解密工具种JAVA加密解密工具种/** *//**
81JAVA加密解密工具种 * 密码加密
82JAVA加密解密工具种 * @param password
83JAVA加密解密工具种 * @return
84JAVA加密解密工具种 * @throws Exception
85JAVA加密解密工具种*/
86JAVA加密解密工具种JAVA加密解密工具种public final static String encrypt(String password)JAVA加密解密工具种{
87JAVA加密解密工具种JAVA加密解密工具种try JAVA加密解密工具种{
88JAVA加密解密工具种return byte2hex(encrypt(password.getBytes(),PASSWORD_CRYPT_KEY.getBytes()));
89JAVA加密解密工具种JAVA加密解密工具种 }catch(Exception e) JAVA加密解密工具种{
90JAVA加密解密工具种 }
91JAVA加密解密工具种return null;
92JAVA加密解密工具种 }
93JAVA加密解密工具种JAVA加密解密工具种/** *//**
94JAVA加密解密工具种 * 二行制转字符串
95JAVA加密解密工具种 * @param b
96JAVA加密解密工具种 * @return
97JAVA加密解密工具种*/
98JAVA加密解密工具种JAVA加密解密工具种public static String byte2hex(byte[] b) JAVA加密解密工具种{
99JAVA加密解密工具种 String hs = "";
100JAVA加密解密工具种 String stmp = "";
101JAVA加密解密工具种JAVA加密解密工具种for (int n = 0; n < b.length; n++) JAVA加密解密工具种{
102JAVA加密解密工具种 stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
103JAVA加密解密工具种if (stmp.length() == 1)
104JAVA加密解密工具种 hs = hs + "0" + stmp;
105JAVA加密解密工具种else
106JAVA加密解密工具种 hs = hs + stmp;
107JAVA加密解密工具种 }
108JAVA加密解密工具种return hs.toUpperCase();
109JAVA加密解密工具种 }
110JAVA加密解密工具种
111JAVA加密解密工具种JAVA加密解密工具种public static byte[] hex2byte(byte[] b) JAVA加密解密工具种{
112JAVA加密解密工具种if((b.length%2)!=0)
113JAVA加密解密工具种throw new IllegalArgumentException("长度不是偶数");
114JAVA加密解密工具种byte[] b2 = new byte[b.length/2];
115JAVA加密解密工具种JAVA加密解密工具种for (int n = 0; n < b.length; n+=2) JAVA加密解密工具种{
116JAVA加密解密工具种 String item = new String(b,n,2);
117JAVA加密解密工具种 b2[n/2] = (byte)Integer.parseInt(item,16);
118JAVA加密解密工具种 }
119JAVA加密解密工具种return b2;
120JAVA加密解密工具种 }
121JAVA加密解密工具种
122JAVA加密解密工具种JAVA加密解密工具种public static void main(String[] args) JAVA加密解密工具种{
123JAVA加密解密工具种 String pwd = "测试dasdfaaaaaaa";
124JAVA加密解密工具种 System.out.println("测试数据="+pwd);
125JAVA加密解密工具种 String data = encrypt(pwd);
126JAVA加密解密工具种 System.out.println("加密后的数据data="+data);
127JAVA加密解密工具种 pwd = decrypt(data);
128JAVA加密解密工具种 System.out.println("解密后="+pwd);
129JAVA加密解密工具种
130JAVA加密解密工具种 }
131JAVA加密解密工具种}?

读书人网 >编程

热点推荐