什么是base64
- Base64是一种用64个字符来表示任意二进制数据的方法(就像ASCII码一样,是一种数据标准)
- [‘A’, ‘B’, …‘Z’, ‘a’, ‘b’, …‘z’, ‘0’, ‘1’, …‘9’, ‘+’, ‘/’]
为什么要用base64编码
- 在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同
的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,
这是不利于传输的。
- 把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了
很多场景下的数据传输要求数据只能由简单通用的字符组成,比如HTTP协议要求请
求的首行和请求头都必须是ASCII编码
base64的作用
- 所有的二进制文件,都可以因此转化为可打印的文本编码,使用文本软件进行编辑
- 能够对文本进行简单的加密
base64的简单算法描述
- 把3个8位字节(38=24)转化为4个6位的字节(46=24)
- 在6位的前面补两个0,形成8位一个字节的形式
- 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’, 表示补了多少字节,解码的时候,会自动去掉。
Qt中使用base64
// base64 // 编码 QByteArray base = "你好, 世界"; base = base.toBase64(); qDebug() << base; // 解码 base= QByteArray::fromBase64(base); qDebug() << base.data();