Base编码

经常碰到Base编码,就找了一下相关资料。

Base的作用:

我们知道,一些字符在某些环境中是不能显示的。比如在url地址中,出现空格和/等字符,有可能会导致地址的错误解析。因此,我们可以用Base编码将字符转化成ASCII中的可见字符,去掉一些特殊字符,避免冲突。常见的Base编码有Base16,Base32,Base64等。

Base编码的原理:

计算机中,存储信息时,二进制码以8位(1个字节)为一组,Base编码的原理简单来说就是将二进制码以特定位重新分组,分组后形成的新数字根据对应的编码表转化成可见的,不会引起争议的ASCII字符。

Base16:

Base16 编码会将字节切为以4位一组(不够2n组补=),数据将用16个字符编码。这16个字符分别是 0-9,A-F

比如二进制码00001111重组为0000 1111(0 15),根据Base16编码表找到编码后数据0F。

Base32:

Base32 编码会将字节切为以5位一组。如果最后不够5位,那么就在切出的最后一组后边补0,补够5位,然后右边补=,补够8n组。 

00000001 00000011 00000111 00001111 00011111 11111111
=> 
00000 00100 00001 10000 01110 00011 11000 11111
11111 11100 =     =     =     =     =     =    
// 最后不足5位先在右边补0,完成后再在右边补=直到补够8n组
// 分组结束后再根据编码表转化成相应字符

Base32编码表有两种:

 

Base64 :

Base64编码和Base32编码很类似。将字节切为6位为一组。最后不够6位补0,不够4n组补=。

Base64编码表也有两种:

 

其他还有Base62,Base100 等Base家族编码方式可自行搜索。

放一个在线解码网址:https://ctf.bugku.com/tools


(之后可能会手写一下这几种Base编码的代码实现,挖个坑)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值