Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬 암호화 라이브러리 소개: pycrypto 활용하기 본문
파이썬에서 데이터를 암호화하고 복호화하는 기능은 매우 중요합니다. 그 중에서도 pycrypto는 파이썬에서 가장 널리 사용되는 암호화 라이브러리 중 하나입니다. 이번에는 pycrypto를 사용하여 데이터를 암호화하고 복호화하는 방법을 알아보겠습니다.
예제 1: 대칭키 암호화
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
# 키 생성
key = get_random_bytes(16)
# 암호화
cipher = AES.new(key, AES.MODE_EAX)
plaintext = b"Hello, world!"
ciphertext, tag = cipher.encrypt_and_digest(plaintext)
print("암호화된 텍스트:", ciphertext)
# 복호화
cipher = AES.new(key, AES.MODE_EAX, nonce=cipher.nonce)
decrypted_data = cipher.decrypt(ciphertext)
print("복호화된 텍스트:", decrypted_data)
이 예제는 AES 대칭키 암호화를 사용하여 데이터를 암호화하고 복호화하는 방법을 보여줍니다. get_random_bytes()
함수를 사용하여 랜덤한 키를 생성하고, 이를 사용하여 AES 객체를 초기화합니다.
예제 2: RSA 공개키 암호화
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 키페어 생성
key_pair = RSA.generate(2048)
# 암호화
public_key = key_pair.publickey()
cipher_rsa = PKCS1_OAEP.new(public_key)
plaintext = b"Hello, world!"
ciphertext = cipher_rsa.encrypt(plaintext)
print("암호화된 텍스트:", ciphertext)
# 복호화
cipher_rsa = PKCS1_OAEP.new(key_pair)
decrypted_data = cipher_rsa.decrypt(ciphertext)
print("복호화된 텍스트:", decrypted_data)
위 예제는 RSA 공개키 암호화를 사용하여 데이터를 암호화하고 복호화하는 방법을 보여줍니다. RSA.generate()
함수를 사용하여 RSA 키페어를 생성하고, 이를 사용하여 PKCS1_OAEP.new()
를 호출하여 암호화 및 복호화를 수행합니다.
예제 3: 해시 함수 사용하기
from Crypto.Hash import SHA256
# 해시 함수 생성
hash_func = SHA256.new()
# 데이터 업데이트 및 해시 계산
data = b"Hello, world!"
hash_func.update(data)
hashed_data = hash_func.digest()
print("해시값:", hashed_data)
해시 함수는 데이터의 고정된 길이의 해시 값을 반환하여 데이터의 무결성을 보장합니다. 이 예제에서는 SHA256 해시 함수를 사용하여 데이터를 해싱하는 방법을 보여줍니다.
pycrypto를 사용하면 파이썬에서 다양한 암호화 기법을 쉽게 구현할 수 있습니다.