STM32开发 -- base64详解

base64之前有讲过:
参看:H.264再学习 – 详解 H.264 NALU语法结构

STM32上怎么使用呢?
参看:STM32F103C8T6_AES-128-CTR_base64密文解密.rar

Base64讲解:
参看:C语言实现Base64编码/解码

一、base64简介

Bse64是一种以64个可打印字符对二进制数据进行编码的编码算法。base64在对数据进行编码时以三个8位字符型数据为一组,取这三个字符型数据的ASCII码,然后以6位为一组组成4个新的数据,这4个新的数据有6位,所以它的最大值为2^6=64。我们以4个6位数据的十进制数从base64表中得到最终编码后的字符。

Base64 编码表:
STM32开发 -- base64详解_第1张图片
由于base64编码是将编码前的38位数据,分解成4个6位的数据,所以经过base64编码后的字符串长度是4的倍数。但往往我们进行编码的数据长度并不是3的倍数,这就造成了“编码”后的位数不为4的倍数,比如Brisk共5×8=40位,以6位为一组可以分为7组,这样“编码”后就有7个字符,但base64编码后的字符长度应该是4的倍数,显然这里就出问题了,那么怎么办呢?前面的不可以抛弃掉,所以就只有“追加”了,所以Brisk经过base64编码后的长度应该是8个字符,而第8个编码后的字符是’=’,再比如

你可能感兴趣的:(stm32库开发实战指南)