在作CTF密碼題時很大的坑點就在編碼,中間有一個弄錯就出不來結果。正好python在這塊比較坑,記錄一下。如下是各類需求對應的輸出:python
1. 字符串轉16進制ascii碼串:編碼
txt='ABC' new=txt.encode('utf-8').hex() print(type(new), new)
輸出:spa
<class 'str'> 414243
2.ascii碼串轉字符串:code
code='3041' new=bytes.fromhex(code).decode() print(type(new), new)
輸出:blog
<class 'str'> 0A
3.字符串形式的16進制,轉字節串utf-8
str='A7B7' c=bytes.fromhex( str ) print(c)
輸出:ci
b'\xa7\xb7'
4.字節串轉16進制串字符串
code=b'\xa7\xb7' new=code.hex() print(new)
輸出:base64
a7b7
5.base64編碼解碼:class
from base64 import *
txt='aGVsbG8=' print(b64decode(txt))
輸出:
b'hello'
輸出是bytes,若是想要字符串就decode一下. 由於每每解完base64後還要其餘的操做, 默認輸出bytes就很方便了.
編碼也相似,用b64encode, 此處省略.
.