「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 高度な暗号化技術を使用してデータ保護を強化するにはどうすればよいですか?

高度な暗号化技術を使用してデータ保護を強化するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:907

How to Enhance Data Protection with Advanced Encryption Techniques?

対称キー暗号化: Fernet

Python には、安全でベストプラクティスの暗号化スキームである Fernet を提供する堅牢な暗号化ライブラリがあります。 Fernet は、AES CBC 暗号化、HMAC 署名、バージョンおよびタイムスタンプ情報を使用してデータを保護します。 Fernet.generate_key() でキーを生成することをお勧めします。

from cryptography.fernet import Fernet

key = Fernet.generate_key()
message = 'John Doe'
token = Fernet(key).encrypt(message.encode())
decrypted_message = Fernet(key).decrypt(token).decode()  # 'John Doe'

Alternatives:

Obscuring:曖昧さは必要ですが、base64 エンコードで十分です。 URL の安全性を確保するには、urlsafe_b64encode().

import base64

obscured_message = base64.urlsafe_b64encode(b'Hello world!')  # b'eNrzSM3...='

整合性のみ: HMAC は暗号化なしでデータ整合性保証を提供できます。

import hmac
import hashlib

key = secrets.token_bytes(32)
signature = hmac.new(key, b'Data', hashlib.sha256).digest()

AES-GCM 暗号化: AES-GCM は、パディングなしで暗号化と整合性の両方を提供します。

import base64

key = secrets.token_bytes(32)
ciphertext = aes_gcm_encrypt(b'Data', key)  # base64-encoded ciphertext and tag
decrypted_data = aes_gcm_decrypt(ciphertext, key)  # b'Data'

その他のアプローチ:

AES CFB: パディングなしの CBC と同様。 &&&]

import base64

key = secrets.token_bytes(32)
ciphertext = aes_cfb_encrypt(b'Data', key)  # base64-encoded ciphertext and IV
decrypted_data = aes_cfb_decrypt(ciphertext, key)  # b'Data'

AES ECB: 注意: 安全ではありません! 現実のアプリケーションには推奨されません。

base64 をインポート

キー = Secrets.token_bytes(32)
ciphertext = aes_ecb_encrypt(b'Data', key) # Base64 でエンコードされた暗号文
decrypted_data = aes_ecb_decrypt(暗号文, キー) # b'データ'
リリースステートメント この記事は次の場所に転載されています: 1729591101 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3