java中各種編碼工具類和加密算法

fplayer 8年前發布 | 24K 次閱讀 Java開發

來自: http://www.osblog.net/code/458.html


 封裝各種格式的編碼解碼工具類. 

 * 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.baiduhome.net/lib/view/open1397274257325.html

 本文由用戶 fplayer 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!