2016-08-10 100 views
2

我有一个字符串说FhY=已被编码为十六进制。因此,当运行解码base64字符串到十进制字符串

>>> b6 = 'FhY=' 
>>> b6.decode('base64') 
'\x16\x16' 

是一旦转换应该是22 22一个十六进制字符串。该结果已在网站https://conv.darkbyte.ru/上得到验证。但是,我似乎无法做到从base64到十进制表示的正确转换。我面临的一些挑战是

  1. 期望的小数是int。我只想要基数10
  2. 错误的值。我尝试了以下转换base64 > base16Convert a base64 encoded string to binary),base64 > binary > decimalConvert hex string to int in Python),两者均失败。

请协助。

+0

是否有一个原因:所以这应该解决的呢? –

+0

我没有看过它。现在让我这么做 – Magondu

+0

@ IgnacioVazquez-Abrams可能是因为他需要一个例子:P'struct.unpack('H','\ x16 \ x16')'也许? –

回答

2

您需要将解码字符串中的每个字节转换为其十进制值。你为什么不使用`struct`

b6 = 'FhY=' 
' '.join([ str(ord(c)) for c in b6.decode('base64') ]) 

结果22 22

+0

太棒了。谢谢 – Magondu

+0

谢谢,看起来不错。这个功能是否可逆?我怎样才能将生成的base-10文本映射回base-64字符串? – Leonid

+1

@Leonid你可以使用''''.join(map(lambda x:chr(int(x)),'22 22'.split()))。encode('base64')' ' – Marco