public class SecurityHelper { /** *
加密 *
@param text 待加密内容 *
@param key 密钥 *
@return 密文 */ public static String
DESEncrypt(String text, String key) { try { //
进行3-DES加密后的内容的字�? DESedeKeySpec
dks = new DESedeKeySpec(key.getBytes()); SecretKeyFactory
keyFactory = SecretKeyFactory.getInstance( "DESede" ); SecretKey
skey = keyFactory.generateSecret(dks); Cipher
cipher = Cipher.getInstance( "DESede" ); cipher.init(Cipher.ENCRYPT_MODE,
skey); byte []
encryptedData = cipher.doFinal(text.getBytes()); //
进行3-DES加密后的内容进行BASE64编码 BASE64Encoder
base64en = new BASE64Encoder(); return base64en.encode(encryptedData); } catch (Exception
e){ e.printStackTrace(); return text; } } /** *
解密 *
@param text 待解密内容 *
@param key 密钥 *
@return */ public static String
DESDecrypt(String text, String key) { try { //
进行3-DES加密后的内容进行BASE64解码 BASE64Decoder
base64Decode = new BASE64Decoder(); byte []
base64DValue = base64Decode.decodeBuffer(text); //
进行3-DES解密后的内容的字�? DESedeKeySpec
dks = new DESedeKeySpec(key.getBytes()); SecretKeyFactory
keyFactory = SecretKeyFactory.getInstance( "DESede" ); SecretKey
skey = keyFactory.generateSecret(dks); Cipher
cipher = Cipher.getInstance( "DESede" ); cipher.init(Cipher.DECRYPT_MODE,
skey); byte []
encryptedData = cipher.doFinal(base64DValue); return new String(encryptedData); } catch (Exception
e) { e.printStackTrace(); return text; } } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
public class FileEncrypt
{ public static void Encrypt() { InputStream
inputStream; try { inputStream
= new FileInputStream( "src/main/resources/config.properties" ); FileOutputStream
fos = new FileOutputStream( "src/main/resources/configEncrypt.properties" ); Scanner
scanner = new Scanner(inputStream, "UTF-8" ); String
text = scanner.useDelimiter( "\\A" ).next(); scanner.close(); String
encode = SecurityHelper.DESEncrypt(text, "as!2e4b4%1b6e2&ba5.-011b?720f-=+" ); System.out.println( "============================加密前=============================" ); System.out.println(text); System.out.println( "============================加密后=============================" ); System.out.println(encode); fos.write(encode.getBytes( "UTF-8" )); fos.flush(); fos.close(); } catch (Exception
e) { e.printStackTrace(); } } public static void DEcrypt() { InputStream
inputStream; try { inputStream
= new FileInputStream( "src/main/resources/configEncrypt.properties" ); FileOutputStream
fos = new FileOutputStream( "src/main/resources/configDecrypt.properties" ); Scanner
scanner = new Scanner(inputStream, "UTF-8" ); String
text = scanner.useDelimiter( "\\A" ).next(); scanner.close(); String
code = SecurityHelper.DESDecrypt(text, "as!2e4b4%1b6e2&ba5.-011b?720f-=+" ); System.out.println( "============================解密前=============================" ); System.out.println(text); System.out.println( "============================解密后=============================" ); System.out.println(code); fos.write(code.getBytes( "UTF-8" )); fos.flush(); fos.close(); } catch (Exception
e) { e.printStackTrace(); } } public static void main(String[]
args) { Encrypt(); DEcrypt(); } } |