투케이2K

80. (python/파이썬) [Mac Os] : [Crypto] : 암복호화 모듈 사용해 AES256 인코딩 수행 실시 - key , iv 본문

Python

80. (python/파이썬) [Mac Os] : [Crypto] : 암복호화 모듈 사용해 AES256 인코딩 수행 실시 - key , iv

투케이2K 2024. 5. 5. 17:26
반응형

[개발 환경 설정]

개발 툴 : VsCode

개발 언어 : python

 

[소스 코드]

# --------------------------------------------------------------
# [import]
# --------------------------------------------------------------
import base64
import hashlib
from Crypto.Cipher import AES
# --------------------------------------------------------------



# --------------------------------------------------------------
# [요약 설명]
# --------------------------------------------------------------
# 1. import base64 : 파이썬에서 Base64 인코딩 및 디코딩 수행 모듈입니다
# --------------------------------------------------------------
# 2. import hashlib : 파이썬에서 해시 함수를 제공하는 모듈입니다
# --------------------------------------------------------------
# 3. import Crypto : 파이썬에서 데이터 암복호화를 수행할 수 있는 모듈입니다
# --------------------------------------------------------------
# 4. Crypto 모듈 설치 방법 참고 사이트 : https://blog.naver.com/kkh0977/223436296948
# --------------------------------------------------------------



# --------------------------------------------------------------
# [class start]
# --------------------------------------------------------------
# AES Padding 값 정의
# --------------------------------------------------------------
BS = 16
pad = (lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS).encode())
unpad = (lambda s: s[:-ord(s[len(s)-1:])])



# --------------------------------------------------------------
# [main start]
# --------------------------------------------------------------



# --------------------------------------------------------------
# [Key, Iv, Data 변수 선언]
# --------------------------------------------------------------
# [key] : aes256 기준 32 바이트
# --------------------------------------------------------------
# [iv] : 16 바이트
# --------------------------------------------------------------
key = "0123456789abcdef0123456789abcdef" 

iv = "0123456789abcdef"

data = "hello"


# [AES 객체 초기화 수행 및 key , iv 값을 사용해 암호화 수행]
cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))
raw = pad(data.encode('utf-8'))
enc = cipher.encrypt(raw)


# [base64 문자열 반환]
encodeData = base64.b64encode(enc).decode('utf-8')


# [로그 출력]
print("")
print("----------------------------------------")
print("key :: ", key)
print("----------------------------------------")
print("iv :: ", iv)
print("----------------------------------------")
print("data :: ", data)
print("----------------------------------------")
print("encodeData :: ", encodeData)
print("----------------------------------------")
print("")


# --------------------------------------------------------------
# [main end]
# --------------------------------------------------------------



# --------------------------------------------------------------
# [class end]
# --------------------------------------------------------------
 

[결과 출력]


반응형
Comments