Base64 encoding/decoding常见于各种authentication和防盗链的实现当中。彻底搞懂它绝对提升团队troubleshooting的底气。我们从纯手工方式编码解码开始,然后看看学到的技能怎么样应用在实际的troubleshooting 中。准备工作:
- 我们应知道一个byte有8个bits,并且知道怎么表示它。
- 我们应该comfortable with hex, binary and decimal 之间的conversion.
- 有一张现成的ASCII table. (网上有很多,我下面附一个直接带binary value的)
![55c955f548f17eab5cacd940ddb4ade8.png](https://i-blog.csdnimg.cn/blog_migrate/74d8dc67b0b100c08aa82fa483bb5782.jpeg)
- Base64 Table
![adcf9e08f0eca7760310ea3169d68843.png](https://i-blog.csdnimg.cn/blog_migrate/adbb14e05ecc504dd0f4adc2df3cc87f.jpeg)
Base64 Encoding的原理
大白话是这样。给定一个bits序列,从最左开始,按顺序每6-bit 为一组进行分组,这样每一组可以表示最多2的6次方,也就是64个字符。这是为什么它叫Base64的原因。
这样分组,最后即最右边的一组如果正好有6-bit, 分组就完成。如果不够6-bit, 就要做一个ali