SeouliteLab

파이썬에서 Rijndael 암호화: PyCryptodome 라이브러리 활용 방법 본문

카테고리 없음

파이썬에서 Rijndael 암호화: PyCryptodome 라이브러리 활용 방법

Seoulite Lab 2024. 4. 19. 08:54

Rijndael은 대칭키 암호화 알고리즘 중 하나로, 안전한 데이터 전송 및 보호를 위해 널리 사용됩니다. 파이썬에서 Rijndael 암호화를 구현하고 사용하기 위해서는 PyCryptodome 라이브러리를 활용할 수 있습니다. 이 블로그에서는 PyCryptodome를 사용하여 Rijndael 암호화를 다루는 방법에 대해 알아보겠습니다.

1. 텍스트 암호화하기

가장 기본적인 예제로, 텍스트를 Rijndael로 암호화하고 해독하는 과정을 살펴보겠습니다.

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

# 키 생성
key = get_random_bytes(16)

# 암호화
cipher = AES.new(key, AES.MODE_ECB)
plaintext = b'Hello Rijndael!'
ciphertext = cipher.encrypt(plaintext)
print("암호화된 텍스트:", ciphertext)

# 복호화
cipher = AES.new(key, AES.MODE_ECB)
decrypted_text = cipher.decrypt(ciphertext)
print("해독된 텍스트:", decrypted_text.decode())

위 코드는 ECB 모드를 사용하여 텍스트를 Rijndael로 암호화하고 복호화하는 과정을 보여줍니다.

2. 파일 암호화하기

파일을 Rijndael로 암호화하고 해독하는 예제를 살펴보겠습니다.

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

# 키 생성
key = get_random_bytes(16)

# 파일 암호화
cipher = AES.new(key, AES.MODE_ECB)
with open('plaintext.txt', 'rb') as f:
    plaintext = f.read()
ciphertext = cipher.encrypt(plaintext)

# 암호화된 파일 저장
with open('encrypted_file.bin', 'wb') as f:
    f.write(ciphertext)

# 파일 해독
cipher = AES.new(key, AES.MODE_ECB)
with open('encrypted_file.bin', 'rb') as f:
    ciphertext = f.read()
decrypted_text = cipher.decrypt(ciphertext)

# 해독된 파일 저장
with open('decrypted_file.txt', 'wb') as f:
    f.write(decrypted_text)

위 코드는 ECB 모드를 사용하여 파일을 Rijndael로 암호화하고 해독하는 과정을 보여줍니다.

3. CBC 모드 사용하기

CBC 모드를 사용하여 텍스트를 Rijndael로 암호화하고 복호화하는 예제를 살펴보겠습니다.

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

# 키 및 초기화 벡터 생성
key = get_random_bytes(16)
iv = get_random_bytes(16)

# 암호화
cipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = b'Hello Rijndael with CBC mode!'
ciphertext = cipher.encrypt(plaintext)
print("암호화된 텍스트:", ciphertext)

# 복호화
cipher = AES.new(key, AES.MODE_CBC, iv)
decrypted_text = cipher.decrypt(ciphertext)
print("해독된 텍스트:", decrypted_text.decode())

위 코드는 CBC 모드를 사용하여 텍스트를 Rijndael로 암호화하고 복호화하는 과정을 보여줍니다.

Rijndael 암호화를 파이썬에서 구현하기 위해 PyCryptodome 라이브러리를 사용할 수 있습니다. 이를 통해 데이터를 안전하게 보호하고 전송할 수 있습니다.