蟻ーヴェデルチ

覚悟はいいか?

pycryptoと遊んでみる

こんにちは、deusx'sキッチンの時間です。
暗号とか詳しく知らんしという、ふわっとした状態でpycryptoと遊んでいます。

dlitz/pycrypto · GitHub
PyCrypto API Documentation

何でも良かったんだけど、最初にやったのがpycryptoだったので。

from Crypto.Cipher import AES 
from binascii import hexlify, unhexlify

key = ''.join(chr(x) for x in range(0, 16)) # AES-128
iv = unhexlify('00' * 16) # initialization vector 16 bytes
origin = 'Hello pycrypto!' * 16 # n * 16 bytes

en = AES.new(key, AES.MODE_CBC, iv).encrypt(origin)
de = AES.new(key, AES.MODE_CBC, iv).decrypt(en)

# hex dump
print('[key]: ' + key.encode('hex'))
print('[iv]:  ' + hexlify(iv))
print('[origin]:\n' + origin.encode('hex'))
print('[en]:\n' + en.encode('hex'))
print('[de]:\n' + de.encode('hex'))

# answer comparison
print('[origin]:\n' + origin)
print('[de]:\n' + de) 

ボクは頭賢くないので実際に動作を確認しながら、少しずつ勉強していってる次第であります。