介紹
我們知道,base16編碼就是將字符用16進制表示
’a’ =base16=> b’61’
那么簡單對16進制字符串進行base16解碼即可
binascii方法:
import binascii hex_str = "557365723a20746573740d0a50617373776f72643a206f7073313233210d0a" hex = hex_str.encode('utf-8') str_bin = binascii.unhexlify(hex) str = str_bin.decode('utf-8') print str
base16方法:
hex_str = "557365723a20746573740d0a50617373776f72643a206f7073313233210d0a" import base64 print(base64.b16decode(hex_str.upper()))
直接轉換:
hex_str = "557365723a20746573740d0a50617373776f72643a206f7073313233210d0a" b_list = re.findall(".{2}", hex_str) new_b = "\\x" + "\\x".join(b_list) print new_b.decode("raw_unicode_escape")
注:此方法暫時是有問題的,直接打印不是明文,但是復制后在打印就是明文。原因未知(持續更新)。