最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python crypto包功能的使用解讀

 更新時間:2025年09月21日 16:09:55   作者:追逐此刻  
文章概述了Python中常用的加密庫(如cryptography、pycryptodome、hashlib、bcrypt)及其用途,強調選擇合適工具的重要性,并指出安全實踐如避免MD5/SHA-1、妥善保管密鑰等關鍵注意事項

在Python中,crypto相關的包通常用于加密、解密、哈希和其他密碼學操作。以下是幾個常見的與crypto相關的Python包及其作用:

1. 什么是“加密”???

加密就像把一封信放進一個帶鎖的盒子里,只有有鑰匙的人才能打開看。在計算機里,加密的作用是:

  • ?保護隱私?:比如你的密碼、銀行卡號不能讓別人看到。
  • ?防止篡改?:比如下載的文件不能被壞人偷偷修改。
  • ?安全通信?:比如微信聊天內容不會被黑客偷看。

Python 的 crypto 相關包就是用來做這些事情的!

?2. Python 常用的加密包?

??(1)cryptography(最推薦)??

?作用?:一個超級安全的工具箱,可以做各種加密操作。

?能干什么???

  • ?加密/解密?:比如用密碼鎖住文件,只有知道密碼的人能打開。
  • ?數(shù)字簽名?:比如你寫了一份合同,用你的“簽名”證明是你寫的,別人不能偽造。
  • ?生成安全密碼?:比如自動生成一個超級復雜的密碼,黑客猜不到。

?示例?(加密一段文字):

from cryptography.fernet import Fernet

# 生成一個鑰匙(必須保存好,丟了就打不開了?。?
key = Fernet.generate_key()

# 用鑰匙創(chuàng)建一個“鎖”
cipher = Fernet(key)

# 加密一段文字(比如"Hello")
encrypted = cipher.encrypt(b"Hello")

# 解密
decrypted = cipher.decrypt(encrypted)
print(decrypted)  # 輸出 b"Hello"

??(2)pycryptodome(功能強大)??

?作用?:比 cryptography 更底層,支持更多加密算法。

?能干什么???

  • ?AES加密?(銀行級加密,比如支付寶用的就是這種)。
  • ?RSA加密?(比如網(wǎng)站用 HTTPS 保護你的密碼)。
  • ?計算文件的哈希值?(比如下載軟件時檢查文件是否被篡改)。

?示例?(用 AES 加密):

from Crypto.Cipher import AES

# 鑰匙必須是16字節(jié)(比如 b'16-byte-key-12345')
key = b'16-byte-key-12345'

# 創(chuàng)建一個加密器
cipher = AES.new(key, AES.MODE_EAX)

# 加密數(shù)據(jù)
data = b"Secret Message"
ciphertext, tag = cipher.encrypt_and_digest(data)

# 解密
cipher = AES.new(key, AES.MODE_EAX, cipher.nonce)
decrypted = cipher.decrypt_and_verify(ciphertext, tag)
print(decrypted)  # 輸出 b"Secret Message"

??(3)hashlib(Python 自帶,計算哈希)??

?作用?:計算“指紋”(哈希值),用來驗證數(shù)據(jù)是否被修改。

?能干什么???

  • ?檢查密碼?:比如你注冊時輸入的密碼會被轉換成哈希值存儲,下次登錄時對比哈希值,而不是直接存密碼。
  • ?驗證文件?:比如下載一個軟件,計算它的哈希值,確保沒被病毒修改。

?示例?(計算 SHA-256 哈希值):

import hashlib

# 計算 "Hello" 的哈希值
hash_obj = hashlib.sha256(b"Hello")

# 得到哈希值(一串固定長度的字母數(shù)字)
print(hash_obj.hexdigest())
# 輸出:185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

?注意?:哈希是單向的,不能反向解密(不像前面的加密可以解密)。

??(4)bcrypt(專門存密碼)??

?作用?:安全存儲用戶密碼,防止黑客破解。

?為什么不用普通哈希???

  • 普通哈希(如 SHA-256)計算太快,黑客可以暴力.破解。
  • bcrypt 會故意變慢,讓黑客破解更難。

?示例?(存儲和驗證密碼):

import bcrypt

# 1. 用戶注冊時,哈希密碼
password = b"my_password"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())  # 加鹽(更安全)

# 2. 用戶登錄時,檢查密碼
input_password = b"my_password"
if bcrypt.checkpw(input_password, hashed):
    print("密碼正確!")
else:
    print("密碼錯誤!")

?3. 什么時候用哪個包???

?你要做什么????用哪個包???
加密/解密數(shù)據(jù)(如文件)cryptography 或 pycryptodome
存儲用戶密碼bcrypt
計算哈希值(如校驗文件)hashlib
網(wǎng)絡加密(如 HTTPS)ssl(Python 自帶)

?4. 注意事項(超級重要?。??

  1. ?不要自己發(fā)明加密算法?!用現(xiàn)成的庫(如 cryptography),自己寫的很容易被破解。
  2. ?密鑰(密碼)要保管好?!如果別人拿到你的密鑰,就能解密你的數(shù)據(jù)。
  3. ?不要用 MD5/SHA-1?!它們已經(jīng)不安全了,推薦用 SHA-256 或 bcrypt。
  4. ?加密不是萬能的?!如果電腦有病毒,加密也可能被破解。

?5. 總結?

  • ?加密? = 把數(shù)據(jù)變成亂碼,只有有鑰匙的人能還原。
  • ?哈希? = 計算數(shù)據(jù)的“指紋”,用來驗證是否被修改。
  • Python 的 crypto 包(如 cryptography、pycryptodome、hashlib)就是干這些事的!
  • ?存儲密碼用 bcrypt,加密數(shù)據(jù)用 cryptography,計算哈希用 hashlib

1. ?cryptography

?作用?:一個現(xiàn)代、安全的密碼學庫,提供高級和低級接口。

?功能?:

  • 對稱加密(如AES)
  • 非對稱加密(如RSA、ECC)
  • 哈希(如SHA-256)
  • 數(shù)字簽名
  • 密鑰生成與管理

?示例?:

from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
encrypted = cipher.encrypt(b"Hello, World!")
decrypted = cipher.decrypt(encrypted)

2.?pycryptodome/pycryptodomex

?作用?:PyCrypto的替代品,支持廣泛的密碼學算法。

?功能?:

  • 對稱加密(AES、DES、ChaCha20)
  • 非對稱加密(RSA、DSA)
  • 哈希(SHA、MD5)
  • 隨機數(shù)生成
  • 數(shù)字簽名

?示例?:

from Crypto.Cipher import AES
key = b'16-byte-key-12345'
cipher = AES.new(key, AES.MODE_EAX)
data = b"Secret message"
ciphertext, tag = cipher.encrypt_and_digest(data)

3. ?hashlib(Python標準庫)?

?作用?:提供常見的哈希算法(如SHA-1、SHA-256、MD5)。

?示例?:

import hashlib
hash_obj = hashlib.sha256(b"Hello")
print(hash_obj.hexdigest())

4. ?ssl(Python標準庫)?

?作用?:用于TLS/SSL加密通信(如HTTPS)。

?功能?:

  • 證書驗證
  • 安全套接字通信

?示例?:

import ssl
context = ssl.create_default_context()

5.bcrypt

?作用?:專為密碼哈希設計的庫(抗暴力.破解)。

?示例?:

import bcrypt
password = b"super-secret"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())

6. ?paramiko(SSH相關)?

?作用?:實現(xiàn)SSH協(xié)議,用于加密的遠程連接。

?功能?:

  • SSH客戶端/服務器
  • SFTP文件傳輸

注意事項

  1. ?安全性?:避免使用已棄用的庫(如pycrypto),優(yōu)先選擇cryptographypycryptodome。
  2. ?哈希算法?:MD5和SHA-1已不安全,推薦SHA-256或bcrypt。
  3. ?密鑰管理?:密鑰應通過安全方式(如環(huán)境變量)存儲,而非硬編碼。

總結

  • ?通用加密?:cryptographypycryptodome。
  • ?密碼哈希?:bcryptargon2。
  • ?簡單哈希?:hashlib。
  • ?網(wǎng)絡加密?:sslparamiko。

根據(jù)需求選擇合適的工具,并始終遵循最佳安全實踐!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

佛学| 吉隆县| 陵川县| 芮城县| 白玉县| 梁河县| 新和县| 义马市| 都匀市| 景谷| 张家口市| 肥乡县| 巴林左旗| 大英县| 洛扎县| 湟中县| 临江市| 霞浦县| 阳城县| 南华县| 黎川县| 包头市| 新田县| 肇州县| 尉犁县| 九江市| 额敏县| 合肥市| 孝感市| 陵水| 东明县| 合作市| 蛟河市| 万年县| 乌海市| 泗阳县| 邢台县| 南江县| 浠水县| 乌拉特后旗| 台州市|