【发布时间】:2014-10-06 01:45:57
【问题描述】:
我正在尝试用 Python 编写一个简短的程序,将字符串从十六进制转换为字节,然后从字节转换为 base64。我有一个十六进制的基本字符串,相当于 base64 中的字符串。程序如下所示:
import codecs
basecode = "49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d"
DesiredResult = "SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t"
e = codecs.decode(basecode, 'hex')
print(e)
y = codecs.encode(e, 'base64')
print(y)
z = bytes.decode(y, 'utf-8')
print(z)
print(DesiredResult)
if y == DesiredResult:
print("Success!")
我从程序中得到的输出如下:
b"I'm killing your brain like a poisonous mushroom"
b'SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t\n'
SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t
SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t
我相信你可以想象,这很令人沮丧,因为这意味着虽然我已经接近了,但我实际上并没有完成我打算做的事情。
那么,如何修改这个程序以确保我的转换输出与变量DesiredResult 完全相同?
我知道它与出现在转换中的\n 有关,但我不知道它是如何到达那里的,我也不知道如何摆脱它。
非常感谢任何和所有建议。
【问题讨论】:
-
encode base64 添加一个换行符。所以把它剥掉。
-
我该如何剥离它?
标签: python hex base64 byte codec