[python] PyCrypto를 사용하여 Triple DES 암호화하기

암호화는 보안을 강화하고 데이터의 안전성을 보장하기 위해 매우 중요합니다. Triple DES(3DES)는 DES 암호화 기법의 확장 버전으로, 데이터를 세 번 반복하여 암호화하는 방식입니다. 이번에는 Python에서 PyCrypto 라이브러리를 사용하여 Triple DES 암호화를 어떻게 수행하는지 알아보겠습니다.

1. PyCrypto 설치

먼저, PyCrypto 라이브러리를 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 설치합니다:

pip install pycrypto

2. Triple DES 암호화 코드

이제 Triple DES를 사용하여 데이터를 암호화하는 코드를 작성해보겠습니다.

from Crypto.Cipher import DES3
from Crypto.Random import get_random_bytes

def encrypt(data, key):
    cipher = DES3.new(key, DES3.MODE_ECB)
    return cipher.encrypt(data)

def decrypt(encrypted_data, key):
    cipher = DES3.new(key, DES3.MODE_ECB)
    return cipher.decrypt(encrypted_data)

# 암호화할 데이터와 키 생성
data = "암호화할 데이터입니다."
key = get_random_bytes(24)

# 데이터 암호화
encrypted_data = encrypt(data, key)
print("암호화된 데이터:", encrypted_data)

# 데이터 복호화
decrypted_data = decrypt(encrypted_data, key)
print("복호화된 데이터:", decrypted_data)

위의 코드에서 encrypt 함수는 데이터를 암호화하고, decrypt 함수는 암호화된 데이터를 복호화합니다. key는 암호화에 사용할 키입니다. DES3.MODE_ECB는 Triple DES를 ECB 모드로 사용한다는 것을 의미합니다.

3. 실행 결과

위의 코드를 실행하면 다음과 같은 결과가 출력됩니다.

암호화된 데이터: <암호화된 데이터>
복호화된 데이터: 암호화할 데이터입니다.

암호화된 데이터는 암호화된 바이너리 형태로 출력됩니다. 복호화를 통해 원본 데이터를 정상적으로 복원할 수 있는 것을 확인할 수 있습니다.

참고 자료