[python] PyCrypto를 사용하여 암호화된 문자열 생성하기

암호화는 데이터를 안전하게 전송하거나 저장하기 위해 중요한 기술입니다. Python에서 PyCrypto 라이브러리를 사용하여 암호화된 문자열을 생성하는 방법에 대해 알아보겠습니다.

PyCrypto 라이브러리 설치하기

먼저, PyCrypto 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 PyCrypto를 설치할 수 있습니다.

pip install pycrypto

AES 암호화를 사용하여 문자열 암호화하기

AES(Advanced Encryption Standard)는 현재 가장 보편적으로 사용되는 대칭키 암호화 알고리즘입니다. PyCrypto를 사용하여 AES 암호화를 수행하는 예제 코드는 다음과 같습니다.

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# 암호화할 문자열과 키 생성
plaintext = "암호화할 텍스트"
key = get_random_bytes(32)

# AES 객체 생성 및 암호화 모드 설정
cipher = AES.new(key, AES.MODE_EAX)

# 암호화
ciphertext, tag = cipher.encrypt_and_digest(plaintext.encode())

# 암호문과 태그 출력
print("암호문:", ciphertext)
print("태그:", tag)

위의 코드에서는 AES 암호화를 위해 Crypto.Cipher 모듈의 AES 클래스를 사용합니다. get_random_bytes() 함수를 사용하여 32바이트의 무작위 키를 생성합니다.

암호화할 문자열을 encode() 메서드를 사용하여 바이트로 변환한 후 encrypt_and_digest() 메서드를 호출하여 암호화를 수행합니다. 결과로 암호문과 태그가 생성됩니다.

RSA 암호화를 사용하여 문자열 암호화하기

RSA는 공개키 암호화 알고리즘으로, 암호화와 복호화에 각각 다른 키를 사용합니다. PyCrypto를 사용하여 RSA 암호화를 수행하는 예제 코드는 다음과 같습니다.

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP

# 암호화할 문자열 생성
plaintext = "암호화할 텍스트"

# RSA 키 생성
key = RSA.generate(2048)

# 암호화 객체 생성
cipher = PKCS1_OAEP.new(key)

# 암호화
ciphertext = cipher.encrypt(plaintext.encode())

# 암호문 출력
print("암호문:", ciphertext)

위의 코드에서는 Crypto.PublicKey 모듈의 RSA 클래스를 사용하여 RSA 키를 생성합니다. Crypto.Cipher 모듈의 PKCS1_OAEP 클래스를 사용하여 암호화 객체를 생성합니다.

암호화할 문자열을 encode() 메서드를 사용하여 바이트로 변환한 후 encrypt() 메서드를 호출하여 암호화를 수행합니다. 결과로 암호문이 생성됩니다.

결론

Python을 사용하여 PyCrypto 라이브러리를 활용하여 문자열을 암호화하는 방법을 살펴보았습니다. 암호화를 사용하면 데이터를 안전하게 보호할 수 있으므로, 필요한 경우 암호화 기술을 활용해 데이터를 보호하는 것이 좋습니다.

참고 자료