【QT】——Base64加解密

介绍

  • 用 记事本 打开 exe、jpg、pdf 这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符。
  • 如果要让记事本这样的文本处理软件 处理二进制数据如使用 json 保存二进制信息,需要先把数据先做一个 Base64 编码,统统变成可见字符,再保存。
  • Base64 是一种用 64 个字符表示任意二进制数据的方法,常用于在 URL、Cookie、网页中
    传输少量二进制数据
  • Base64 要求把每三个 8Bit 的字节转换为四个 6Bit 的字节(3*8 = 4*6 = 24),然后把 6Bit
    再添两位高位 0,组成四个 8Bit 的字节,也就是说,转换后的字符串理论上将要比原来的长
    1/3。

示例:

(原文)转换前:         11111101, 11111110, 11111111 (二进制)

转换为四个6Bit : 111111, 011111, 111011, 111111(二进制)

填充0:                 00111111,00011111, 00111011, 00111111(二进制)

Base64的对照表

Base64的作用

可以 生成对应的Base64文本,对其进行简单的加密,因为转换后的 文本并不是原文本,如果需要查看原文本,需要对Base64的数据进行解密。

QT接口

编码

QByteArray QByteArray::toBase64() const
QByteArray QByteArray::toBase64(QByteArray::Base64Options options) const

示例:

QByteArray text("Hello world");
text.toBase64(); 
/* 输出: SGVsbG8gd29ybGQ= */

解码

接口:

[static] QByteArray QByteArray::fromBase64(const QByteArray &base64)
[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, 
                                           QByteArray::Base64Options options)
  • 示例
QByteArray::fromBase64("SGVsbG8gd29ybGQ="); 
/* 输出: Hello world */

Base64Options枚举值一览表

猜你喜欢

转载自blog.csdn.net/sjp11/article/details/131733571