SeouliteLab

파이썬으로 데이터 보안 강화하기: cryptography 라이브러리 활용 방법 본문

카테고리 없음

파이썬으로 데이터 보안 강화하기: cryptography 라이브러리 활용 방법

Seoulite Lab 2024. 4. 16. 08:48

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())