uuencode 笔记
UUEncode 原理
Uuencode是二进制信息和文字信息之间的转换编码,也就是机器和人眼识读的转换。Uuencode编码方案常见于电子邮件信息的传输,目前已被多用途互联网邮件扩展(MIME)大量取代。
Uuencode将输入文字以每三个字节为单位进行编码,如此重复进行。如果最后剩下的文字少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6-bit为单位分为4个群组,每个群组以十进制来表示所出现的数值只会落在0到63之间。将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白...95-底线)的范围之中。
Uuencode编码每60个将输出为独立的一行(相当于45个输入字节),每行的开头会加上长度字符,除了最后一行之外,长度字符都应该是“M”这个ASCII字符(77=32+45),最后一行的长度字符为32+剩下的字节数目这个ASCII字符。
Uuencode编码与base64编码类似,但base64将0~63之间的数字通过查表换字符,而Uuencode编码是直接将这个数字加上32转换为可打印字符。
C++ 实现
加密 - Encode
1 | string encode(const string& plain) |
解密 - Decode
1 | string decode(const string& code) |
Python 实现
1 | import uu |
在线网站
- https://www.qqxiuzi.cn/bianma/uuencode.php