我是这个网站的新手,所以如果我需要改变这个问题,请告诉我!同样,我对64垒的总体经验相当缺乏,所以请耐心等待!
在Python中,我有一个简单解码64进制字符串的短程序:
import base64
def decodeBase64(string):
decodeableString = string
for value in range(len(string)%4):
decodeableString += '='
return base64.b64decode(decodeableString)
尝试解码时:
0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvSDQutC+0LQg0LTQvtGB0YLRg9C/0LAg0Log0LfQtNCw0L3QuNGOIFvQo9CU0JDQm9CV0J3Qnl06Ck9WSzhZTFggLyAo0JjQnNCvIC8g0JrQm9Cu0KcpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID09PT09PQrQkdCw0LfQsCAzNg==
作为挑战的一部分,我遇到了俄罗斯字符,它不知道如何接近,所以它就回来了:
b'xd0x9dxd0xb8xd0xb6xd0xb5 xd0xbfxd1x80xd0xb8xd0xb2xd0xb5xd0xb4xd0xb5xd0xbd xd0xbaxd0xbexd0xb4 xd0xb4xd0xbexd1x81xd1x82xd1x83xd0xbfxd0xb0 xd0xba xd0xb7xd0xb4xd0xb0xd0xbdxd0xb8xd1x8e [xd0xa3xd0x94xd0x90xd0x9bxd0x95xd0x9dxd0x9e]:nOVK8YLX / (xd0x98xd0x9cxd0xaf / xd0x9axd0x9bxd0xaexd0xa7)n================================================== ======nxd0x91xd0xb0xd0xb7xd0xb0 36'
使用不同的在线解码器,我了解到其中包含俄罗斯字符。有没有相对简单的方法可以让我的程序检查解码后的64进制字符串是否包含非ascii字符,然后将其翻译成ascii字符?
在您的特定情况下,字符串是UTF-8编码的。
在Python 3.x中,您必须将其从bytes
解码为str
,假设解码的字节在x
:中
>>> x.decode('utf-8')
'Ниже приведен код доступа к зданию [УДАЛЕНО]:nOVK8YLX / (ИМЯ / КЛЮЧ)n================================================== ======nБаза 36'
然而,在一般情况下,您只能猜测编码。请参阅此和相关问题。