Python でパスワードを使用して文字列を安全に暗号化および復号化する方法
Python でパスワードを使用した文字列の安全な暗号化と復号化
Python の暗号化ライブラリは、データの暗号化と復号化のための包括的なツールキットです。パスワードを使用して文字列を暗号化するには、堅牢な暗号化を提供し、タイムスタンプ、HMAC 署名、base64 エンコードなどの重要な機能を備えた Fernet クラスを利用できます。
Fernet with Password
<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 のパスワード導出キー生成
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 隠蔽: 基本用難読化、base64 エンコードは暗号化なしで使用できます。ただし、これは実際のセキュリティを提供するものではなく、単に隠蔽するだけです。
HMAC 署名: データの整合性が目標の場合は、HMAC 署名を使用してデータが改ざんされていないことを確認します。
AES-GCM 暗号化: AES-GCM は、ガロア/カウンター モード ブロック暗号化を使用して暗号化と整合性保証の両方を提供します。これは Fernet に似ていますが、ユーザー フレンドリーな機能はありません。
以上がPython でパスワードを使用して文字列を安全に暗号化および復号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
