版权声明:本文为Boyd Wang原创文章,转载时请注明作者及本文链接
本文链接:http://www.boydwang.com/2014/02/js-base64-encode/

首先来说下base64的编码原理,base64编码是把3个8bit(3*8=24bit)编码成4个6bit(4*6=24bit),并在每个6bit高位添加两个0构成一个8bit,然后换算成10进制,反查编码表即可得到对应的编码。由于2^6=64,即6bit的最大值是63,所以只需要64(0~63)个ASCII字符即可表示所有编码,因此得名base64编码。

base64的编码表如下:

Base64 编码表(十进制)
Value Char Value Char Value Char Value Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

下面来举例说明:

有一个字符串”abcd”

你可能注意到了,是每3个8bit进行一次编码,如果编码到最后不够3字节怎么办?base64编码规定,对于不够3个8bit的,编码完成后少几个6bit添几个”=”,这会有两种情况:

这也是为什么base64编码完成后面会有1到2个”=”。

实现代码:



打赏
Categories: 前端开发

Boyd Wang

想给自己贴上各种NB的头衔,NB程序员,NB自由职业者,最后发现自己其实是个Newbie,没办法,慢慢来吧

Leave a Reply

Your email address will not be published. Required fields are marked *

无觅相关文章插件,快速提升流量