Commit c949968c6620ba3b1e92da935976e69025e1586b
1 parent
133a92c0b2
Exists in
master
and in
6 other branches
updated
Showing 1 changed file with 54 additions and 22 deletions
platform-common/src/main/java/com/lyms/platform/common/utils/LymsEncodeUtil.java
View file @
c949968
1 | 1 | package com.lyms.platform.common.utils; |
2 | 2 | |
3 | +import org.apache.commons.codec.binary.Base64; | |
3 | 4 | import org.apache.commons.lang.*; |
4 | 5 | import sun.misc.BASE64Decoder; |
5 | 6 | import sun.misc.BASE64Encoder; |
6 | 7 | |
7 | 8 | |
8 | 9 | |
9 | 10 | |
10 | 11 | |
11 | 12 | |
12 | 13 | |
13 | 14 | |
14 | 15 | |
15 | 16 | |
... | ... | @@ -17,50 +18,73 @@ |
17 | 18 | public class LymsEncodeUtil { |
18 | 19 | |
19 | 20 | public static void main(String[] args) throws Exception { |
20 | - String content = "我爱你"; | |
21 | + String key = "Lymsh@2016"; | |
22 | +/* String content = "我爱你"; | |
21 | 23 | System.out.println("加密前:" + content); |
22 | 24 | |
23 | - String key = "Lymsh@2016"; | |
25 | + | |
24 | 26 | System.out.println("加密密钥和解密密钥:" + key); |
25 | 27 | |
26 | 28 | String encrypt = aesEncrypt("57fada6128b63c3192cc963b", key); |
27 | - System.out.println("加密后:" + encrypt); | |
29 | + System.out.println("加密后:" + encrypt);*/ | |
28 | 30 | |
29 | - String decrypt = aesDecrypt("26EB0301C4A2410E90985A3E55856E4B86730CD45542FD5129D8EDC5ED4C690D", key); | |
30 | - System.out.println("解密后:" + decrypt); | |
31 | + String json = aesDecrypt("26EB0301C4A2410E90985A3E55856E4B4C04BE4EB806C5597D8C79BB138DA77CDAE3B1C80268FE887D3804F73B8B5BEA", key); | |
32 | + System.out.println("解密后:" + json); | |
33 | + String j = "rO0ABXNyAB9jb20ubHltcy5wbGF0Zm9ybS5wb2pvLlBhdGllbnRzAAAAAAAAAAECAF1MAAdhZGRyZXNzdAASTGphdmEvbGFuZy9TdHJpbmc7TAAPYWRkcmVzc1Bvc3RSZXN0cQB+AAFMAA9hZGRyZXNzUmVnaXN0ZXJxAH4AAUwAA2FnZXQAE0xqYXZhL2xhbmcvSW50ZWdlcjtMAA\n" + | |
34 | + "ZhcmVhSWRxAH4AAUwADmFyZWFQb3N0UmVzdElkcQB+AAFMAA5hcmVhUmVnaXN0ZXJJZHEAfgABTAAGYXZhdGFycQB+AAFMAAViaXJ0aHQAEExqYXZhL3V0aWwvRGF0ZTtMABBib29rYnVpbGRpbmdEYXRlcQB+AANMABJib29rYnVpbGRpbmdEb2N0b3JxAH4AAUwACWJ1aWxkVHlw\n" + | |
35 | + "ZXEAfgACTAAGY2FyZE5vcQB+AAFMAAZjaXR5SWRxAH4AAUwADmNpdHlQb3N0UmVzdElkcQB+AAFMAA5jaXR5UmVnaXN0ZXJJZHEAfgABTAALY29tbXVuaXR5SWRxAH4AAUwAB2NyZWF0ZWRxAH4AA0wABmNyaXNpc3EAfgACTAAKZGVsaXZlck9yZ3EAfgABTAAHZHVlRGF0ZXEAfg\n" + | |
36 | + "ADTAAJZHVlU3RhdHVzcQB+AAJMAAdkdWVUeXBlcQB+AAFMAAZlbmFibGVxAH4AAUwAB2V4cFR5cGVxAH4AAkwABmV4cFZpcHEAfgACTAAIZmlsZUNvZGVxAH4AAUwAEWZpcnN0Umlza0ZhY3RvcklkdAAQTGphdmEvdXRpbC9MaXN0O0wABmZtRGF0ZXEAfgADTAAJZm9yZWlnbklk\n" + | |
37 | + "cQB+AAFMAAxmb3JlaWduU3ViSWRxAH4AAUwABmdlbmRlcnEAfgACTAAQaGFkZHJlc3NSZWdpc3RlcnEAfgABTAAPaGFyZWFSZWdpc3RlcklkcQB+AAFMAA9oY2VydGlmaWNhdGVOdW1xAH4AAUwAEmhjZXJ0aWZpY2F0ZVR5cGVJZHEAfgABTAAPaGNpdHlSZWdpc3RlcklkcQB+AA\n" + | |
38 | + "FMAApoY291bnRyeUlkcQB+AAFMAAxobGV2ZWxUeXBlSWRxAH4AAUwACWhuYXRpb25JZHEAfgABTAAKaG9zcGl0YWxJZHEAfgABTAARaHByb2Zlc3Npb25UeXBlSWRxAH4AAUwAE2hwcm92aW5jZVJlZ2lzdGVySWRxAH4AAUwAEWhzdHJlZXRSZWdpc3RlcklkcQB+AAFMAAxodXNi\n" + | |
39 | + "YW5kQmlydGhxAH4AA0wAC2h1c2JhbmROYW1lcQB+AAFMAAxodXNiYW5kUGhvbmVxAH4AAUwACWh3b3JrVW5pdHEAfgABTAACaWRxAH4AAUwAB2lzVmlzaXRxAH4AAkwACWxhc3RDVGltZXEAfgADTAATbGFzdENoZWNrRW1wbG95ZWVJZHEAfgABTAAKbGFzdE1lbnNlc3EAfgADTA\n" + | |
40 | + "AUbGFzdFJlcG9ydERvY3Rvck5hbWVxAH4AAUwADGxhc3RSZXBvcnRJZHEAfgACTAAKbGFzdFJoVGltZXEAfgADTAAIbW9kaWZpZWRxAH4AA0wADm1vbW15UGF0aWVudElkcQB+AAFMAAdtcmVtYXJrcQB+AAFMAA1uZXh0Q2hlY2tUaW1lcQB+AANMAAhvcGVyYXRvcnEAfgACTAAM\n" + | |
41 | + "cGF0aWVudExldmVscQB+AAJMAA1wY2Vuc3VzVHlwZUlkcQB+AAFMAAxwY2VydGVUeXBlSWRxAH4AAUwACnBjb3VudHJ5SWRxAH4AAUwABXBob25lcQB+AAFMAANwaWRxAH4AAUwADHBsZXZlbFR5cGVJZHEAfgABTAALcGxpdmVUeXBlSWRxAH4AAUwACXBuYXRpb25JZHEAfgABTA\n" + | |
42 | + "ANcG9zdFZpZXdUaW1lc3EAfgACTAARcHByb2Zlc3Npb25UeXBlSWRxAH4AAUwACnByb3ZpbmNlSWRxAH4AAUwAEnByb3ZpbmNlUG9zdFJlc3RJZHEAfgABTAAScHJvdmluY2VSZWdpc3RlcklkcQB+AAFMAAlwdWJsaXNoSWRxAH4AAUwAC3B1Ymxpc2hOYW1lcQB+AAFMAAlwd29y\n" + | |
43 | + "a1VuaXRxAH4AAUwADHJpc2tGYWN0b3JJZHEAfgAETAALcmlza0xldmVsSWRxAH4AAUwACXJpc2tTY29yZXEAfgACTAANc2VydmljZVN0YXR1c3EAfgACTAALc2VydmljZVR5cGVxAH4AAkwACHN0cmVldElkcQB+AAFMABBzdHJlZXRQb3N0UmVzdElkcQB+AAFMABBzdHJlZXRSZW\n" + | |
44 | + "dpc3RlcklkcQB+AAFMAA10cmlhZ2VPcmRlck5vcQB+AAFMAAR0eXBlcQB+AAJMAAh1c2VybmFtZXEAfgABTAAIdmNDYXJkTm9xAH4AAUwAA3ZpcHEAfgACTAAKdmlwRW5kVGltZXEAfgADTAACeW5xAH4AAnhyACljb20ubHltcy5wbGF0Zm9ybS5jb21tb24ucmVzdWx0LkJhc2VN\n" + | |
45 | + "b2RlbAAAAAAAAAABAgAAeHBwcHBwcHBwcHNyAA5qYXZhLnV0aWwuRGF0ZWhqgQFLWXQZAwAAeHB3CAAAAKgq9OwAeHNxAH4AB3cIAAABWBt4BAB4dAADOTYzc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4I\n" + | |
46 | + "sCAAB4cAAAAAJ0ABIxMzAxODQxOTkyMTEyMTI1NDFwcHBwc3EAfgAHdwgAAAFYHp2/33hwcHNxAH4AB3cIAAABWKFdXAB4c3EAfgALAAAAAHBwcHBwcHNxAH4AB3cIAAABWORQCAB4cHBwcHBwdAAkNzBhZTFkOTMtMjk2NC00NmJjLTgzZmEtYmVjOWZmNjA1YjFjcHQAJDBkYTQz\n" + | |
47 | + "MzRmLTQ5ZTctNDE4MC1iNjkwLTVjZWE2NjhmNzVlOXB0ACRhNjI4YWIzYS0xZTBjLTQyMTktYWIxNC1hMTQ2MzZjNWNkYWF0AAMyNDFwcHBwcHBwdAAYNTgxODM4YzQxOWE0OWNhM2JlYjkxYWI1cHBwc3EAfgAHdwgAAAFS+kJgAHhwcHBzcQB+AAd3CAAAAVjk9NRWeHBwcHNxAH\n" + | |
48 | + "4ACwAAA8NwcHQAJDcwYWUxZDkzLTI5NjQtNDZiYy04M2ZhLWJlYzlmZjYwNWIxY3QAJDBkYTQzMzRmLTQ5ZTctNDE4MC1iNjkwLTVjZWE2NjhmNzVlOXQACzE1MDc1MTEzNTYwdAAYNTgxODM4YzQxOWE0OWNhM2JlYjkxYWIzcHB0ACRhNjI4YWIzYS0xZTBjLTQyMTktYWIxNC1h\n" + | |
49 | + "MTQ2MzZjNWNkYWFwcHBwcHBwcHBwcQB+ABFxAH4AEXEAfgARcHBwcHNxAH4ACwAAAAN0AAnmnY7mmKXlqJx0ABBBMTYwMDEwMDAwNjQ4MjQ1cHBzcQB+AAsAAAAB"; | |
50 | + | |
31 | 51 | } |
32 | 52 | |
33 | 53 | /** |
34 | 54 | * 将byte[]转为各种进制的字符串 |
55 | + * | |
35 | 56 | * @param bytes byte[] |
36 | 57 | * @param radix 可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制 |
37 | 58 | * @return 转换后的字符串 |
38 | 59 | */ |
39 | - public static String binary(byte[] bytes, int radix){ | |
60 | + public static String binary(byte[] bytes, int radix) { | |
40 | 61 | return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数 |
41 | 62 | } |
42 | 63 | |
43 | 64 | /** |
44 | 65 | * base 64 encode |
66 | + * | |
45 | 67 | * @param bytes 待编码的byte[] |
46 | 68 | * @return 编码后的base 64 code |
47 | 69 | */ |
48 | - public static String base64Encode(byte[] bytes){ | |
70 | + public static String base64Encode(byte[] bytes) { | |
49 | 71 | return new BASE64Encoder().encode(bytes); |
50 | 72 | } |
51 | 73 | |
52 | 74 | /** |
53 | 75 | * base 64 decode |
76 | + * | |
54 | 77 | * @param base64Code 待解码的base 64 code |
55 | 78 | * @return 解码后的byte[] |
56 | 79 | * @throws Exception |
57 | 80 | */ |
58 | - public static byte[] base64Decode(String base64Code) throws Exception{ | |
81 | + public static byte[] base64Decode(String base64Code) throws Exception { | |
59 | 82 | return StringUtils.isEmpty(base64Code) ? null : new BASE64Decoder().decodeBuffer(base64Code); |
60 | 83 | } |
61 | 84 | |
62 | 85 | /** |
63 | 86 | * 获取byte[]的md5值 |
87 | + * | |
64 | 88 | * @param bytes byte[] |
65 | 89 | * @return md5 |
66 | 90 | * @throws Exception |
... | ... | @@ -74,6 +98,7 @@ |
74 | 98 | |
75 | 99 | /** |
76 | 100 | * 获取字符串md5值 |
101 | + * | |
77 | 102 | * @param msg |
78 | 103 | * @return md5 |
79 | 104 | * @throws Exception |
80 | 105 | |
81 | 106 | |
... | ... | @@ -84,17 +109,19 @@ |
84 | 109 | |
85 | 110 | /** |
86 | 111 | * 结合base64实现md5加密 |
112 | + * | |
87 | 113 | * @param msg 待加密字符串 |
88 | 114 | * @return 获取md5后转为base64 |
89 | 115 | * @throws Exception |
90 | 116 | */ |
91 | - public static String md5Encrypt(String msg) throws Exception{ | |
117 | + public static String md5Encrypt(String msg) throws Exception { | |
92 | 118 | return StringUtils.isEmpty(msg) ? null : base64Encode(md5(msg)); |
93 | 119 | } |
94 | 120 | |
95 | 121 | /** |
96 | 122 | * AES加密 |
97 | - * @param content 待加密的内容 | |
123 | + * | |
124 | + * @param content 待加密的内容 | |
98 | 125 | * @param encryptKey 加密密钥 |
99 | 126 | * @return 加密后的byte[] |
100 | 127 | * @throws Exception |
... | ... | @@ -113,7 +140,8 @@ |
113 | 140 | |
114 | 141 | /** |
115 | 142 | * AES加密为base 64 code |
116 | - * @param content 待加密的内容 | |
143 | + * | |
144 | + * @param content 待加密的内容 | |
117 | 145 | * @param encryptKey 加密密钥 |
118 | 146 | * @return 加密后的base 64 code |
119 | 147 | * @throws Exception |
120 | 148 | |
... | ... | @@ -124,8 +152,9 @@ |
124 | 152 | |
125 | 153 | /** |
126 | 154 | * AES解密 |
155 | + * | |
127 | 156 | * @param encryptBytes 待解密的byte[] |
128 | - * @param decryptKey 解密密钥 | |
157 | + * @param decryptKey 解密密钥 | |
129 | 158 | * @return 解密后的String |
130 | 159 | * @throws Exception |
131 | 160 | */ |
... | ... | @@ -144,6 +173,7 @@ |
144 | 173 | |
145 | 174 | /** |
146 | 175 | * 将base 64 code AES解密 |
176 | + * | |
147 | 177 | * @param encryptStr 待解密的base 64 code |
148 | 178 | * @param decryptKey 解密密钥 |
149 | 179 | * @return 解密后的string |
150 | 180 | |
151 | 181 | |
152 | 182 | |
... | ... | @@ -155,15 +185,16 @@ |
155 | 185 | |
156 | 186 | /** |
157 | 187 | * 将二进制转换成16进制 |
158 | - * @method parseByte2HexStr | |
188 | + * | |
159 | 189 | * @param buf |
160 | 190 | * @return |
161 | 191 | * @throws |
192 | + * @method parseByte2HexStr | |
162 | 193 | * @since v1.0 |
163 | 194 | */ |
164 | - public static String parseByte2HexStr(byte buf[]){ | |
195 | + public static String parseByte2HexStr(byte buf[]) { | |
165 | 196 | StringBuffer sb = new StringBuffer(); |
166 | - for(int i = 0; i < buf.length; i++){ | |
197 | + for (int i = 0; i < buf.length; i++) { | |
167 | 198 | String hex = Integer.toHexString(buf[i] & 0xFF); |
168 | 199 | if (hex.length() == 1) { |
169 | 200 | hex = '0' + hex; |
170 | 201 | |
171 | 202 | |
172 | 203 | |
... | ... | @@ -175,19 +206,20 @@ |
175 | 206 | |
176 | 207 | /** |
177 | 208 | * 将16进制转换为二进制 |
178 | - * @method parseHexStr2Byte | |
209 | + * | |
179 | 210 | * @param hexStr |
180 | 211 | * @return |
181 | 212 | * @throws |
213 | + * @method parseHexStr2Byte | |
182 | 214 | * @since v1.0 |
183 | 215 | */ |
184 | - public static byte[] parseHexStr2Byte(String hexStr){ | |
185 | - if(hexStr.length() < 1) | |
216 | + public static byte[] parseHexStr2Byte(String hexStr) { | |
217 | + if (hexStr.length() < 1) | |
186 | 218 | return null; |
187 | - byte[] result = new byte[hexStr.length()/2]; | |
188 | - for (int i = 0;i< hexStr.length()/2; i++) { | |
189 | - int high = Integer.parseInt(hexStr.substring(i*2, i*2+1), 16); | |
190 | - int low = Integer.parseInt(hexStr.substring(i*2+1, i*2+2), 16); | |
219 | + byte[] result = new byte[hexStr.length() / 2]; | |
220 | + for (int i = 0; i < hexStr.length() / 2; i++) { | |
221 | + int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); | |
222 | + int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); | |
191 | 223 | result[i] = (byte) (high * 16 + low); |
192 | 224 | } |
193 | 225 | return result; |