Python의 암호화 라이브러리는 데이터 암호화 및 복호화를 위한 포괄적인 툴킷입니다. 비밀번호를 사용하여 문자열을 암호화하려면 강력한 암호화를 제공하고 타임스탬프, HMAC 서명, base64 인코딩과 같은 필수 기능을 포함하는 Fernet 클래스를 활용할 수 있습니다.
<code class="python">from cryptography.fernet import Fernet, FernetException password = 'mypass' fernet = Fernet(password.encode()) encrypted_message = fernet.encrypt(b'John Doe') decrypted_message = fernet.decrypt(encrypted_message) print(encrypted_message) # Encrypted string print(decrypted_message.decode()) # 'John Doe'</code>
Fernet은 다중 암호화를 적용하고 HMAC 서명으로 메시지 무결성을 보장하여 암호화된 데이터를 안전하게 유지합니다.
Fernet에서 직접 비밀번호를 사용하는 것이 편리합니다. , 비밀번호를 사용하여 키를 생성하는 것이 더 안전합니다. 이 접근 방식에는 키 파생 기능을 사용하여 비밀번호와 솔트에서 비밀 키를 파생시키는 것이 포함됩니다.
<code class="python">import secrets from cryptography.fernet import Fernet from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC backend = default_backend() salt = secrets.token_bytes(16) # Generate a unique salt password = 'mypass'.encode() # Convert password to bytes kdf = PBKDF2HMAC( algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100000, backend=backend ) key = b64e(kdf.derive(password)) # Derive the secret key fernet = Fernet(key) encrypted_message = fernet.encrypt(b'John Doe')</code>
이 방법은 비밀번호에서 파생된 강력한 키를 사용하여 암호화 프로세스에 추가 보호 계층을 추가하여 보안을 강화합니다. 및 고유한 솔트.
Fernet 외에도 특정 요구 사항에 따라 대안을 고려할 수 있습니다.
Base64 Obscuring: 기본 난독화, 암호화 없이 base64 인코딩을 사용할 수 있습니다. 그러나 이는 실제 보안을 제공하지 않고 단지 모호함을 제공합니다.
HMAC 서명: 데이터 무결성이 목표라면 HMAC 서명을 사용하여 데이터가 변조되지 않았는지 확인하세요.
AES-GCM 암호화: AES-GCM은 Galois/카운터 모드 블록 암호화를 사용하여 Fernet과 유사하지만 사용자 친화적인 기능은 없지만 암호화 및 무결성 보장을 모두 제공합니다.
위 내용은 Python에서 비밀번호를 사용하여 문자열을 안전하게 암호화하고 해독하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!