Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬으로 데이터 보안 강화하기: cryptography 라이브러리 활용 방법 본문
cryptography는 파이썬에서 데이터 보안을 강화하는 데 사용되는 라이브러리입니다. 이를 통해 암호화, 복호화, 서명, 해싱 등의 다양한 보안 기능을 구현할 수 있습니다. 아래는 cryptography의 주요 기능과 사용법을 소개합니다.
기능 1: 암호화 및 복호화
cryptography를 사용하여 데이터를 암호화하고 복호화할 수 있습니다. 대칭키 및 비대칭키 암호화 방식을 모두 지원합니다.
예제 1: AES 대칭키 암호화 및 복호화
from cryptography.fernet import Fernet
# 키 생성
key = Fernet.generate_key()
cipher = Fernet(key)
# 암호화
message = b"안녕하세요, 데이터를 암호화합니다."
encrypted_message = cipher.encrypt(message)
# 복호화
decrypted_message = cipher.decrypt(encrypted_message)
print(decrypted_message.decode())
기능 2: 서명 및 검증
cryptography를 사용하여 데이터에 서명을 추가하고 검증할 수 있습니다. 이를 통해 데이터의 무결성을 보장할 수 있습니다.
예제 2: HMAC 서명과 검증
from cryptography.hazmat.primitives import hmac
from cryptography.hazmat.backends import default_backend
# 서명 생성
key = b"super-secret-key"
h = hmac.HMAC(key, hash_backend=default_backend())
h.update(b"메시지를 서명합니다.")
signature = h.finalize()
# 서명 검증
h_verify = hmac.HMAC(key, hash_backend=default_backend())
h_verify.update(b"메시지를 서명합니다.")
try:
h_verify.verify(signature)
print("서명이 유효합니다.")
except cryptography.exceptions.InvalidSignature:
print("서명이 유효하지 않습니다.")
기능 3: 해싱
cryptography를 사용하여 데이터의 해시 값을 계산할 수 있습니다. 이를 통해 데이터의 무결성을 확인할 수 있습니다.
예제 3: SHA-256 해싱
from cryptography.hazmat.primitives import hashes
# 해싱
digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
digest.update(b"파이썬 cryptography 라이브러리를 사용합니다.")
hashed_data = digest.finalize()
print("해시 값:", hashed_data.hex())