Python:为什么我的base64文件名编码不匹配它应该是什么?

时间:2016-07-08 23:52:32

标签: python base64

我在Python中有一个base64情况我无法弄明白 - 当我运行我的脚本时:

import rebus
import os

# Set directory
os.chdir('/Users/Ryan/')

# Filename from folder
filename = 'Ryan20160708.txt'

# Create the base64 of the filename
filenameenc = rebus.urlsafe_b64encode(filename)
filebase64 = filenameenc.rstrip()

# Print these for developer
print("Your filename is: " + filename)
print("The base64 encoded filename is: " + filebase64)

我得到以下结果:

Your filename is: Ryan20160708.txt
The base64 encoded filename is: UnlhbjIwMTYwNzA4LnR4dAoK

这个较大的脚本用于API帖子中,我不断重新发现500个错误。当我更仔细地查看base64名称并意识到它与https://www.base64encode.org/上的内容不匹配时,它会返回UnlhbjIwMTYwNzA4LnR4dA==而不是UnlhbjIwMTYwNzA4LnR4dAoK。刚刚过去的几个角色。

我唯一注意到的是,当我将base64放入网站并将其解码回文件名时,它会返回正确的文件名(Ryan20160708.txt),但它下面有两个换行符。虽然我已经用rstrip()剥离了它的任何额外空格 - 所以我很卡住了。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您阅读了PyPI:https://pypi.python.org/pypi/rebus/0.2

您会看到rebus用于:

  

生成由字母数字符号组成的base64编码字符串   仅

如果你真的在寻找base64编码,我怀疑这是你想要的。您可能只想要base64,如:

import base64
import os

# Set directory
os.chdir('/Users/Ryan/')

# Filename from folder
filename = 'Ryan20160708.txt'

# Create the base64 of the filename
filenameenc = base64.b64encode(filename)
filebase64 = filenameenc.rstrip()

# Print these for developer
print("Your filename is: " + filename)
print("The base64 encoded filename is: " + filebase64)

哪个会给你

Your filename is: Ryan20160708.txt
The base64 encoded filename is: 'UnlhbjIwMTYwNzA4LnR4dA=='