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();
}
}
|