Your wish is my command

It’s a long journey

Python-mcrypt 사용 예

python-mcrypt은 문서가 없다. 포함된 test.py를 보면 되는데… 좀 길고..

#! -*- encoding: utf8 -*-
import base64
import urllib
import mcrypt
import random
import string

def random_string(length):
        return ''.join([random.choice(string.ascii_letters + string.digits) for x in range(length)])

chiper_key = random_string(16)

# encode
def encrypt(data):
        m = mcrypt.MCRYPT('rijndael-256', 'cfb')
        iv_size = m.get_iv_size()
        iv = random_string(iv_size)

        m.init(chiper_key, iv)
        return base64.b64encode(m.encrypt(iv + data))


# decode
def decrypt(data):
        data = base64.b64decode(data)
        m = mcrypt.MCRYPT('rijndael-256', 'cfb')
        iv_size = m.get_iv_size()
        iv = data[:iv_size]
        encrypted = data[iv_size:]
        m.init(chiper_key, iv)
        return m.decrypt(encrypted)

data = '안녕하세요'
assert data == decrypt(encrypt(data))