GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI===
首先需要区分base16,base32,base64三种编码方式:
1、base16的编码表字符串是数字0~9和字母A~F;
2、base32的编码表字符串是字母A~Z和数字2~7;
3、base64的编码表字符串是字母A~Z,a~z,数字0~9,“+”,“/”。
4、根据编码原理,只有base32和base64编码方式可能会出现末尾的补位符“=”
所以上面的字符串由于出现了“=”,并且只含大写字母和数字2~7,因此其应该是base32编码的结果。
使用python编程
s="GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI==="
import base64
#deBase=base64.b64decode(s).decode("utf-8")
debase=(base64.b32decode(s))
import binascii
r=binascii.a2b_hex(debase)# 字符串转ASCII编码的方法
print(str(r,'utf-8'))# b' 转字符串的方法
其中最后一行是b'***转字符串的方法,因为在python3中字符串的编码语言用的是unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果要在网络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes。