Arduino – base64 编码和解码


Arduino 包含一个帮助base64编码和解码的库。你可以从库管理器下载他。搜索base64,并安装 Densaugeo 的库。

现在,打开一个新的草图,并且运行以下示例代码 −

#include "base64.hpp"

unsigned char normal_text[20] = "Hello World";
unsigned char base64_text[20];
unsigned char decoded_text[20];

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();

   int base64_length = encode_base64(normal_text,12,base64_text);
   Serial.print("Base64 Text: ");Serial.println((char *) base64_text);
   Serial.print("Base64 Length: ");Serial.println(base64_length);

   int decoded_length = decode_base64(base64_text,decoded_text);
   Serial.print("Decoded Text: ");Serial.println((char *)decoded_text);
   Serial.print("Decoded Length: ");Serial.println(decoded_length);
}

void loop() {
   // put your main code here, to run repeatedly:
}

输出

串行监视器输出如下 −

你可以像这样的网站上验证此输出:https://base64.guru/converter/decode

如你所见,此库处理无符号字符数组。base64_encode 函数接受三个参数 −

  • 要转换的数组

  • 要转换的数组中元素的数量

  • 用于存储编码值的数组

它返回编码数组的长度。

base64_decode 函数接收两个参数 −

  • 包含编码值的数组

  • 用于存储解码结果的数组

由于Serial.print()及其变体不处理无符号字符数组,因此你需要将其转换为字符数组以供打印。

更新于: 26-7-2021

5000+ 浏览

开启你的 职业生涯

完成课程即可获得认证

开始学习
广告