Notice
Recent Posts
Recent Comments
Link
투케이2K
76. (python/파이썬) [Mac Os] : [Crypto] : 암복호화 모듈 사용해 AES128 인코딩 수행 실시 - key , iv 본문
Python
76. (python/파이썬) [Mac Os] : [Crypto] : 암복호화 모듈 사용해 AES128 인코딩 수행 실시 - key , iv
투케이2K 2024. 5. 5. 16:55[개발 환경 설정]
개발 툴 : 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())
# --------------------------------------------------------------
# [main start]
# --------------------------------------------------------------
# --------------------------------------------------------------
# [Key, Iv, Data 변수 선언]
# --------------------------------------------------------------
# [key] : aes128 기준 16 바이트
# --------------------------------------------------------------
# [iv] : 16 바이트
# --------------------------------------------------------------
key = "0123456789abcdef"
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]
# --------------------------------------------------------------
[결과 출력]
반응형
'Python' 카테고리의 다른 글
Comments