在Python中没有编码器的情况下将数据从ASCII转换为Base 64

时间:2015-02-06 03:57:48

标签: python python-3.x base64 ascii

我试图创建两个程序,一个从ASCII转换数据的程序 - >整数到 - >基础64和另一个反转过程,测试如何使用下面的例子,我输入“猫”,并提出了0b10001000110111101100111。但是我无法将其转移到Base 64,我最终应该使用RG9N,我不确定我应该添加什么来提出这个,我是Python&编程一般。

Base 64 Encoder

打包成整数

number = ord('C')
number = ord('a') + (number << 8)
number = ord('t') + (number << 8)

print(bin(number))

#Base64 from integer

code = number  >> (6 * 3)
number = number - (code  << (6 * 3))
code = number >> (6 * 2)
number = number - (code  << (6 * 3))
code = number >> (6 * 1)
number = number - (code << (6 * 1))

print(chr(code))

1 个答案:

答案 0 :(得分:0)

首先,您需要4个打印语句,而不仅仅是一个 - 必须输出您创建的4个代码中的每一个。您可能更喜欢writeprint,因为print会为每个输出添加空格。

其次,您不能只对这些代码调用chr,因为它们会转换为不可打印的字符。您需要从代码编号到字符的映射,您可以在Wikipedia找到该字符。

您正在使用的基本方法(将3个输入字符转换为4个输出字符)是合理的。但是你还需要在序列末尾有一些特殊的大小写代码,你剩下的字符少于3个,你需要在输出中插入=填充。