본문 바로가기

Programming Language

Python AES 암호화하기(AES/CBC/PKCS5Padding)

Python으로도 암호화를 손쉽게 할 수 있습니다. 이번 포스팅에서는 AES/CBC/PKS5Padding으로 암호화 하는 Python code를 보여드리겠습니다.

 

먼저 필요한 module은 아래와 같습니다.

from Crypto.Cipher import AES

 

위 모듈을 사용하기 위해서는 아래와 같이 pip를 통해 모듈을 설치해줍니다.

$ pip install pycrypto

모듈 사이트 : https://pypi.org/project/pycrypto/

 

pycrypto

Cryptographic modules for Python.

pypi.org


AES encrypt를 하기 위해서는 key와 iv가 필요하므로 선언하며, 암호화 길이가 32보다 작을경우 padding으로 빈공간을 채워주는 로직을 사용합니다.

key = bytes.fromhex("da1d32181d122d21")
iv = bytes.fromhex("ba7cdeae124s")
BS = 16
pad lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
raw = pad(input_value)
cipher = AES.new(key, AES.MODE_CBC, iv)
output_value = cipher.encrypt(raw).hex()

 

 

태그