我正在用 BASIC 编写一个小型微控制器。基本上它接收到一些 BASE64 编码数据,我需要在最后使用 BASIC 对其进行解码。我想知道是否有任何方法可以做到这一点?
问问题
742 次
1 回答
0
我不知道基本但你可以从这个链接开始:http ://en.wikipedia.org/wiki/Base64清楚地解释了编码是如何工作的。
您需要解码 base64 编码的消息,因此您应该设置一个数组,例如
dim('A','B','C','D','E',....,'8','9','+','/')
(或无论基本语法是什么)使用 64 索引并从输入中读取 4 个字符。在查找表中找到对应的值,并用它来解码消息。
我将使用术语char来指示您在编码消息中找到的字符,并使用术语索引来解决它们代表解码算法的值。
如果您的基本支持位掩码,您可以很快完成。如果没有,您必须使用一些巧妙的乘法/除法。
将第一个索引乘以 4(模 255),将第二个索引除以 16,将两个结果相加得到第一个字节
将第二个索引乘以 16(模数 255),将第三个索引除以 4,将两个结果相加得到第二个字节,
将第三个索引乘以 16(模数 255),将第四个索引相加得到第三个字节
重复直到消息结束。
您需要注意填充字符:如果遇到 = 符号,您就知道您到达了编码字节的末尾,您必须停止解码,因为您知道:
- 如果第三个编码字符是 a = 你只需要解码第一个字节;
- 如果第四个字符是 a = 你需要解码两个字节;
没有其他情况。
另一个提示:有时编码的消息被包装,您需要忽略 \n 字符(或您可能遇到的任何 \r\n 组合)。
于 2010-09-24T16:37:57.860 回答