文章目录
base16、base32和base64,转码原理
基本概念
ASCII 是用128(2的8次方)个字符,对二进制数据进行编码的方式
base64编码是用64(2的6次方)个字符,对二进制数据进行编码的方式
base32就是用32(2的5次方)个字符,对二进制数据进行编码的方式
base16就是用16(2的4次方)个字符,对二进制数据进行编码的方式
基于base16编解码源码介绍
就是把二进制数据转成16进制,显示16进制的值就可以了
16进制一个字符是4位,正常一个字节是8位,切一半就转成16进制了。
所以,base16转码后空间扩大一倍,4位转成一个字符, 1个字节转成两个字符
#include <iostream>
using namespace std;
static const char BASE16_ENC_TAB[] = "0123456789ABCDEF";
// '0' ~'9' => 48~57 'A'~'F' = > 65~70
static const char BASE16_DEC_TAB[128] = {
-1, //0
-1,-1,-1,-1,-1, -1,-1,-1,-1,-1, //1-10
-1,-1,-1,-1,-1, -1,-1,-1,-1,-1, //11-20
-1,-1,-1,-1,-1, -1,-1,-1,-