1 package com.tem1.util;
2
3 import java.security.InvalidKeyException;
4 import java.security.NoSuchAlgorithmException;
5 import java.security.Security;
6
7
8 import javax.crypto.BadPaddingException;
9 import javax.crypto.Cipher;
10 import javax.crypto.IllegalBlockSizeException;
11 import javax.crypto.KeyGenerator;
12 import javax.crypto.NoSuchPaddingException;
13 import javax.crypto.SecretKey;
14
15 import com.sun.crypto.provider.SunJCE;
16
17 public class EncrypDES {
18
19 //KeyGenerator 提供对称密钥生成器的功能,支持各种算法 如:DES DESede(3DES) AES
20 private KeyGenerator keygen;
21 //SecretKey 负责保存对称密钥
22 private SecretKey deskey;
23 //Cipher负责完成加密或解密工作
24 private Cipher c;
25 //该字节数组负责保存加密的结果
26 private byte[] cipherByte;
27
28 public EncrypDES() throws NoSuchAlgorithmException, NoSuchPaddingException{
29 Security.addProvider(new SunJCE());
30 //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)
31 // keygen = KeyGenerator.getInstance("DESede");
32 keygen = KeyGenerator.getInstance("DES");
33 //生成密钥
34 deskey = keygen.generateKey();
35 System.out.println("Key :"+deskey);
36 //生成Cipher对象,指定其支持的DES算法
37 c = Cipher.getInstance("DES");
38 }
39
40 /**
41 * 对字符串加密
42 *
43 * @param str
44 * @return
45 * @throws InvalidKeyException
46 * @throws IllegalBlockSizeException
47 * @throws BadPaddingException
48 */
49 public byte[] Encrytor(String str) throws InvalidKeyException,
50 IllegalBlockSizeException, BadPaddingException {
51 // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式
52 c.init(Cipher.ENCRYPT_MODE, deskey);
53
54 byte[] src = str.getBytes();
55 // 加密,结果保存进cipherByte
56 cipherByte = c.doFinal(src);
57 return cipherByte;
58 }
59
60 /**
61 * 对字符串解密
62 *
63 * @param buff
64 * @return
65 * @throws InvalidKeyException
66 * @throws IllegalBlockSizeException
67 * @throws BadPaddingException
68 */
69 public byte[] Decryptor(byte[] buff) throws InvalidKeyException,
70 IllegalBlockSizeException, BadPaddingException {
71 // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式
72 c.init(Cipher.DECRYPT_MODE, deskey);
73 cipherByte = c.doFinal(buff);
74 return cipherByte;
75 }
76
77 /**
78 * @param args
79 * @throws NoSuchPaddingException
80 * @throws NoSuchAlgorithmException
81 * @throws BadPaddingException
82 * @throws IllegalBlockSizeException
83 * @throws InvalidKeyException
84 */
85 public static void main(String[] args) throws Exception {
86 EncrypDES de1 = new EncrypDES();
87 String msg ="明天七点出发";
88 byte[] encontent = de1.Encrytor(msg);
89 byte[] decontent = de1.Decryptor(encontent);
90 System.out.println("明文是:" + msg);
91 System.out.println("加密后:" + new String(encontent));
92 System.out.println("解密后:" + new String(decontent));
93 }
94
95 }
![](data:image/png;base64,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)