장고의 Secret Key 를 이용한 암호화
"""
This Script needs django and pycrypto.
If you want to use this, just call encode(wanna_crypto_text) or decode(encoded_text).
When your secret key changed, you can't decode encoded text before changed, so becareful.
"""
import hashlib
from Crypto.Cipher import AES
import base64
from django.conf import settings
secret_key = hashlib.sha256(settings.SECRET_KEY.encode()).digest()
block_size = 32
pedding = '|'
def encode(target):
aes = AES.new(secret_key)
target = pad(target)
after = aes.encrypt(target)
based = base64.b64encode(after)
return based.decode()
def decode(target):
based = base64.b64decode(target)
aes = AES.new(secret_key)
after = aes.decrypt(based)
return unpad(after)
def pad(s):
return s + (block_size - len(s) % block_size) * pedding
def unpad(s):
return s.decode().rstrip('|')