封装各种格式的编码解码工具类.
* 1.Commons-Codec的 hex/base64 编码
* 2.自制的base62 编码
* 3.Commons-Lang的xml/html escape
* 4.JDK提供的URLEncoder
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
public
class
Encodes {
private
static
final
String DEFAULT_URL_ENCODING =
"UTF-8"
;
private
static
final
char
[] BASE62 =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
.toCharArray();
/**
* Hex编码.
*/
public
static
String encodeHex(
byte
[] input) {
return
Hex.encodeHexString(input);
}
/**
* Hex解码.
*/
public
static
byte
[] decodeHex(String input) {
try
{
return
Hex.decodeHex(input.toCharArray());
}
catch
(DecoderException e) {
throw
Exceptions.unchecked(e);
}
}
/**
* Base64编码.
*/
public
static
String encodeBase64(
byte
[] input) {
return
Base64.encodeBase64String(input);
}
/**
* Base64编码, URL安全(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548).
*/
public
static
String encodeUrlSafeBase64(
byte
[] input) {
return
Base64.encodeBase64URLSafeString(input);
}
/**
* Base64解码.
*/
public
static
byte
[] decodeBase64(String input) {
return
Base64.decodeBase64(input);
}
/**
* Base62编码。
*/
public
static
String encodeBase62(
byte
[] input) {
char
[] chars =
new
char
[input.length];
for
(
int
i =
0
; i < input.length; i++) {
chars[i] = BASE62[((input[i] &
0xFF
) % BASE62.length)];
}
return
new
String(chars);
}
/**
* Html 转码.
*/
public
static
String escapeHtml(String shtml) {
return
StringEscapeUtils.escapeHtml4(shtml);
}
/**
* Html 解码.
*/
public
static
String unescapeHtml(String htmlEscaped) {
return
StringEscapeUtils.unescapeHtml4(htmlEscaped);
}
/**
* Xml 转码.
*/
public
static
String escapeXml(String xml) {
return
StringEscapeUtils.escapeXml(xml);
}
/**
* Xml 解码.
*/
public
static
String unescapeXml(String xmlEscaped) {
return
StringEscapeUtils.unescapeXml(xmlEscaped);
}
/**
* URL 编码, Encode默认为UTF-8.
*/
public
static
String urlEncode(String part) {
try
{
return
URLEncoder.encode(part, DEFAULT_URL_ENCODING);
}
catch
(UnsupportedEncodingException e) {
throw
Exceptions.unchecked(e);
}
}
/**
* URL 解码, Encode默认为UTF-8.
*/
public
static
String urlDecode(String part) {
try
{
return
URLDecoder.decode(part, DEFAULT_URL_ENCODING);
}
catch
(UnsupportedEncodingException e) {
throw
Exceptions.unchecked(e);
}
}
}
|
Hex编码解码.
Base64编码解码
Base64编码, URL安全(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548).
Base62编码
Html 转码解码.
Xml 转码解码
URL 编码解码, Encode默认为UTF-8.
================================================
不得不佩服下面链接的仁兄,各种加密算法整理的着实详尽
各种java 加密算法:http://www.open-open.com/lib/view/open1397274257325.html