五种编码模式
ASCII编码和Hex编码
ASCII编码:将所有的英文字符中标点符号、空格、数字、大小写字符可以表示为表示为0到127的十进制数字。
Hex编码:将信息转化为十六进制,即每个字符的ASCII码的十六进制。
使用8个比特位(即1个字节)存储字符,如同可见
引用图片:来源https://www.asciim.cn/ ASCII编码网
Base编码
在数据传输中,一些二进制数字会被系统解释成控制字符等,二进制数据可能包含不能直接打印或显示的字符。
base编码将二进制数据转换为文本表示,功能主要是将特殊字符和不可见字符转换成常见字符
base家族有三个重要成员:
base16 :又名hex编码
2的4次方是16 base16由4bit表示
0-9,A-F共16个字符
引用图片:来源https://blog.equinox.chat Norman1z的个人笔记
base32:
2的5次方是32 base32由5bit表示
A-Z,2-7共32个字符
引用图片:来源https://blog.equinox.chat Norman1z的个人笔记
base64
2的6次方是64 base64由6bit表示
A-Z,a-z,0-9,+,/共64个字符
引用图片:来源https://blog.equinox.chat Norman1z的个人笔记
Base编码的最大特点:字符串末尾是=
为什么呢?
一个字节是八位bit,即八个bit为一组。base64是六位bit,即六个bit为一组。将收到的字节数据按6个bit为一组进行重新划分,字节数据有时不是六的倍数,在这种情况下,在序列末尾填充“0”以补充到24的倍数(6和8的最小公倍数)。
base32则是补充到5和8的最小公倍数40,同理。
URL编码
每一个字符的URL编码是百分号%+该字符的ASCII的16进制表示
字符:flag
URL编码后:%66%6C%61%67
HTML编码
HTML编码由 :&#+该字符的ASCII值 表示
字符:Hello
HTML编码后Hello