반응형
파이썬에서 가장 많이 사용되는 두 개의 암호화 라이브러리는
“cryptography”와 “pycryptodome”이다.
이 중 pycryptodome을 이용해 암호화 평문을 만들고 복호화를 만드는 코드를 파이썬으로 만들어본다.
먼저, 라이브러리를 설치한다.
설치 후 다음과 같은 파일을 만들고 실행한다.
import sys
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
# 키 생성
key = get_random_bytes(16)
# AES 암호화 객체 생성
cipher = AES.new(key, AES.MODE_CBC)
# 평문 데이터
plaintext = "Hello, It's a secret message "
# 평문 데이터를 바이트로 변환하고 패딩 적용
plaintext_bytes = plaintext.encode('utf-8')
padded_data = pad(plaintext_bytes, AES.block_size)
# 암호화
ciphertext = cipher.encrypt(padded_data)
# 암호문 출력
print("암호문:", ciphertext.decode(sys.stdout.encoding, errors='replace'))
# 복호화를 위한 AES 객체 생성
decipher = AES.new(key, AES.MODE_CBC, iv=cipher.iv)
# 복호화
decrypted_data = unpad(decipher.decrypt(ciphertext), AES.block_size)
# 복호화된 데이터 출력
print("복호화된 데이터:", decrypted_data.decode('utf-8'))
위 파일을 실행하면 아래와 같이 평문 Hello, It's a secret message이 암호화 되고,
암호화된 텍스트가 다시 복호화되어 표시된다.
728x90
'디지털포렌식(Digital forensic) > 키(key)' 카테고리의 다른 글
스마트폰 패턴 [랜덤 암호화] 코드 (1) | 2024.05.28 |
---|---|
[파일] ZIP 파일 만들기 코드 (0) | 2023.11.30 |
윈도우즈 11의 기본값, SSD 암호화 ON (0) | 2023.10.24 |
[파일]QR 코드 생성 프로그램 (1) | 2023.10.17 |
아핀(affine) 암호, QAPASAA가 가르키는 나라는? (0) | 2023.09.10 |