您的位置:首页 > 编程语言 > Java开发

java中各种编码工具类和加密算法

2016-02-26 00:00 375 查看
封装各种格式的编码解码工具类.
* 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: