」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何利用先進的加密技術增強資料保護?

如何利用先進的加密技術增強資料保護?

發佈於2024-11-08
瀏覽:590

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'

替代方案:

如果模糊: 如果模糊:

如果模糊:
import base64

obscured_message = base64.urlsafe_b64encode(b'Hello world!')  # b'eNrzSM3...='
如果模糊:

如果只有需要模糊性,base64 編碼就夠了。為了 URL 安全,請使用 urlsafe_b64encode()。

import base64 obliged_message = base64.urlsafe_b64encode(b'Hello world!') # b'eNrzSM3...='
import hmac
import hashlib

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

HMAC 無需加密即可提供資料完整性保證。

導入 hmac 導入哈希庫 key = Secrets.token_bytes(32) signature = hmac.new(key, b'Data', hashlib.sha256).digest()
import hmac
import hashlib

key = secrets.token_bytes(32)
signature = hmac.new(key, b'Data', hashlib.sha256).digest()
AES-GCM 加密:

AES-GCM 提供加密和完整性,無需填充。

導入base64 key = Secrets.token_bytes(32) ciphertext = aes_gcm_encrypt(b'Data', key) # Base64 編碼的密文和標籤 crypted_data = aes_gcm_decrypt(ciphertext, key) # b'Data'

其他方法:

import hmac
import hashlib

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

與無填充的 CBC 類似。 導入base64 key = Secrets.token_bytes(32) ciphertext = aes_cfb_encrypt(b'Data', key) # Base64 編碼的密文和 IV crypted_data = aes_cfb_decrypt(ciphertext, key) # b'Data'

import base64

key = secrets.token_bytes(32)
ciphertext = aes_ecb_encrypt(b'Data', key)  # base64-encoded ciphertext
decrypted_data = aes_ecb_decrypt(ciphertext, key)  # b'Data'
警告:不安全!

不建議用於實際應用。 How to Enhance Data Protection with Advanced Encryption Techniques?

導入base64 key = Secrets.token_bytes(32) ciphertext = aes_ecb_encrypt(b'Data', key) # Base64 編碼的密文 解密資料 = aes_ecb_decrypt(密文, 金鑰) # b'資料'

版本聲明 本文轉載於:1729591101如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3