base64学习笔记

首先取得三个字节的数据(24位)
TUX
完成二进制转换
01010100 01010101 01011000
高位补0 : 8*3 = 6*4 ,形成4个字节
00010101 00000101 00010101 00011000
再将四个字节转成十进制数
21 5 21 24

Table 1: The Base64 Alphabet

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


得到加密后的 “VFVY”


因为在编码过程中把3个8位的二进制数实际上转换成了4个6位的二进制数,而6位的二进制数只能表示0~(2^6-1)这个区间内的64个数,所以该算法被命名位BASE64算法!

 

当待转换数据长度不是3整数倍时

如'Linux'

=> 01001100 01101001 01101110 01110101 01111000 (pad)

=> 00010011 00000110 00100101 00101110 00011101 00010111 00100000  (pad) (第七组后2个0是补上的)
           一              二               三               四              五                 六               七            八

=> 19 6 37 46 29 23 32 (pad)
=> TGludXg=

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值