Hex

In [1]:
import binascii

print(binascii.b2a_hex(b'AAA'))
print(binascii.a2b_hex('414141'))
print(binascii.a2b_hex(b'414141'))
b'414141'
b'AAA'
b'AAA'
In [2]:
import codecs

print(codecs.encode(b'AAA', 'hex'))
print(codecs.decode(b'414141', 'hex'))
print(codecs.decode('414141', 'hex'))
b'414141'
b'AAA'
b'AAA'
In [3]:
import sys
if sys.version_info >= (3, 5):
    print(b'AAA'.hex())
    print(bytes.fromhex('414141'))

Base64

In [4]:
import base64

print(base64.b64encode(b'Hello World'))
print(base64.b64decode(b'SGVsbG8gV29ybGQ='))
b'SGVsbG8gV29ybGQ='
b'Hello World'
In [5]:
import codecs

print(codecs.encode(b'Hello World', 'base64'))
print(codecs.decode(b'SGVsbG8gV29ybGQ=', 'base64'))
b'SGVsbG8gV29ybGQ=\n'
b'Hello World'
In [6]:
import binascii

print(binascii.b2a_base64(b'Hello World'))
print(binascii.a2b_base64(b'SGVsbG8gV29ybGQ='))
print(binascii.a2b_base64('SGVsbG8gV29ybGQ='))
b'SGVsbG8gV29ybGQ=\n'
b'Hello World'
b'Hello World'

Binary

In [7]:
import struct

print(struct.pack('<I', 1337))
print(struct.pack('>I', 1337))
print(struct.unpack('!I', b'\x00\x00\x059'))
b'9\x05\x00\x00'
b'\x00\x00\x059'
(1337,)
In [8]:
import sys
if sys.version_info >= (3, 2):
    a = 1337
    print(a.to_bytes(4, 'little'))
    print(a.to_bytes(2, 'big'))
    print(int.from_bytes(b'\x00\x00\x059', 'big'))
b'9\x05\x00\x00'
b'\x059'
1337

Hashing

In [9]:
import hashlib

md = hashlib.sha1() # md5(), sha256(), ..., pbkdf2_hmac()
# or 
md = hashlib.new('sha1')

md.update(b'Hello World')
print(md.hexdigest())
print(md.digest())
0a4d55a8d778e5022fab701977c5d840bbc486d0
b'\nMU\xa8\xd7x\xe5\x02/\xabp\x19w\xc5\xd8@\xbb\xc4\x86\xd0'

ROT13

In [10]:
import codecs

print(codecs.encode('Hello World', 'rot13'))
print(codecs.decode('Uryyb Jbeyq', 'rot13'))
Uryyb Jbeyq
Hello World