[python] 파이썬에서 PyCrypto 사용법
PyCrypto
는 파이썬에서 사용할 수 있는 암호화 및 암호 해독 기능을 제공하는 라이브러리입니다. 이 블로그 포스트에서는 PyCrypto
라이브러리를 설치하고 사용하는 방법을 알아보겠습니다.
PyCrypto 설치하기
PyCrypto
를 설치하려면 pip
를 사용하면 됩니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install pycrypto
PyCrypto 사용 예제
대칭키 암호화
파일이나 문자열을 대칭키를 사용하여 암호화하고 해독하는 예제를 살펴보겠습니다.
from Crypto.Cipher import AES
def encrypt(plain_text, key):
cipher = AES.new(key, AES.MODE_EAX)
cipher_text, tag = cipher.encrypt_and_digest(plain_text)
return cipher_text, cipher.nonce, tag
def decrypt(cipher_text, nonce, tag, key):
cipher = AES.new(key, AES.MODE_EAX, nonce)
plain_text = cipher.decrypt_and_verify(cipher_text, tag)
return plain_text
key = b'secret_key'
plain_text = b'Hello, World!'
cipher_text, nonce, tag = encrypt(plain_text, key)
print(f"Cipher text: {cipher_text}")
print(f"Nonce: {nonce}")
print(f"Tag: {tag}")
decrypted_text = decrypt(cipher_text, nonce, tag, key)
print(f"Decrypted text: {decrypted_text}")
공개키/개인키 암호화
PyCrypto
를 사용하여 공개키/개인키 암호화를 수행하는 예제를 살펴보겠습니다.
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
def encrypt(public_key_path, plain_text):
public_key = RSA.import_key(open(public_key_path).read())
cipher = PKCS1_OAEP.new(public_key)
cipher_text = cipher.encrypt(plain_text)
return cipher_text
def decrypt(private_key_path, cipher_text):
private_key = RSA.import_key(open(private_key_path).read())
cipher = PKCS1_OAEP.new(private_key)
plain_text = cipher.decrypt(cipher_text)
return plain_text
public_key_path = 'public_key.pem'
private_key_path = 'private_key.pem'
plain_text = b'Hello, World!'
cipher_text = encrypt(public_key_path, plain_text)
print(f"Cipher text: {cipher_text}")
decrypted_text = decrypt(private_key_path, cipher_text)
print(f"Decrypted text: {decrypted_text}")
결론
이번 포스트에서는 파이썬에서 PyCrypto
라이브러리를 사용하여 암호화와 암호 해독을 하는 방법을 알아보았습니다. PyCrypto
는 간편한 설치와 사용법으로 암호화 보안 기능을 간단히 구현할 수 있습니다. 더 자세한 사용법은 PyCrypto
의 공식 문서를 참고하시기 바랍니다.