JavaScript base64_encode 函数
JavaScript #base64 #函数2012-04-17 00:31
使用MIME Base64算法编码字符串
01 | function base64_encode (data) { |
02 | |
03 | var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ; |
04 | var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, |
05 | ac = 0, |
06 | enc = "" , |
07 | tmp_arr = []; |
08 |
09 | if (!data) { |
10 | return data; |
11 | } |
12 |
13 | do { // pack three octets into four hexets |
14 | o1 = data.charCodeAt(i++); |
15 | o2 = data.charCodeAt(i++); |
16 | o3 = data.charCodeAt(i++); |
17 |
18 | bits = o1 << 16 | o2 << 8 | o3; |
19 |
20 | h1 = bits >> 18 & 0x3f; |
21 | h2 = bits >> 12 & 0x3f; |
22 | h3 = bits >> 6 & 0x3f; |
23 | h4 = bits & 0x3f; |
24 |
25 | // use hexets to index into b64, and append result to encoded string |
26 | tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); |
27 | } while (i < data.length); |
28 |
29 | enc = tmp_arr.join( '' ); |
30 | |
31 | var r = data.length % 3; |
32 | |
33 | return (r ? enc.slice(0, r - 3) : enc) + '===' .slice(r || 3); |
34 |
35 | } |
用法
1 | base64_encode( 'yige.org' ); |
1 | eWlnZS5vcmc= |
相关文章
- javascript7种方式刷新 2012/04/14
- javascript取得radio值 2012/04/14