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

Python crypto包功能的使用解讀

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

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

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

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

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

Python 的 crypto 相關(guān)包就是用來做這些事情的!

?2. Python 常用的加密包?

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

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

?能干什么???

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

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

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ù)是否被修改。

?能干什么???

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

?示例?(計算 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)絡(luò)加密(如 HTTPS)ssl(Python 自帶)

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

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

?5. 總結(jié)?

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

1. ?cryptography

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

?功能?:

  • 對稱加密(如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的替代品,支持廣泛的密碼學(xué)算法。

?功能?:

  • 對稱加密(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標(biāo)準(zhǔn)庫)?

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

?示例?:

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

4. ?ssl(Python標(biāo)準(zhǔn)庫)?

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

?功能?:

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

?示例?:

import ssl
context = ssl.create_default_context()

5.bcrypt

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

?示例?:

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

6. ?paramiko(SSH相關(guān))?

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

?功能?:

  • SSH客戶端/服務(wù)器
  • SFTP文件傳輸

注意事項

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

總結(jié)

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

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

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

相關(guān)文章

  • python 解決selenium 中的 .clear()方法失效問題

    python 解決selenium 中的 .clear()方法失效問題

    這篇文章主要介紹了python 解決selenium 中的 .clear()方法失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Python的pip在命令行無法使用問題的解決方法

    Python的pip在命令行無法使用問題的解決方法

    PIP是通用的Python包管理工具,提供了對?Python?包的查找、下載、安裝、卸載、更新等功能,安裝諸如Pygame、Pymysql等Python包時,都要用到pip,許多人在第一次使用pip的時候都會出現(xiàn)'pip'?不是內(nèi)部或外部命令,所以本文介紹了Python的pip在命令行無法使用問題的解決方法
    2025-05-05
  • 解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題

    解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題

    這篇文章主要介紹了解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python如何通過Flask-Mail發(fā)送電子郵件

    Python如何通過Flask-Mail發(fā)送電子郵件

    這篇文章主要介紹了Python如何通過Flask-Mail發(fā)送電子郵件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python完成FizzBuzzWhizz問題(拉勾網(wǎng)面試題)示例

    python完成FizzBuzzWhizz問題(拉勾網(wǎng)面試題)示例

    這篇文章主要介紹了python完成FizzBuzzWhizz問題(拉勾網(wǎng)面試題)示例,需要的朋友可以參考下
    2014-05-05
  • Python實現(xiàn)自動記錄復(fù)制的文本并保存

    Python實現(xiàn)自動記錄復(fù)制的文本并保存

    這篇文章主要為大家詳細介紹了如何使用Python開發(fā)一個小工具,可以實現(xiàn)記錄你復(fù)制的文本內(nèi)容并自動保存,這樣就再也不怕搞丟靈感或者代碼段啦
    2025-04-04
  • python批量提取圖片信息并保存的實現(xiàn)

    python批量提取圖片信息并保存的實現(xiàn)

    這篇文章主要介紹了python批量提取圖片信息并保存的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python中分支語句與循環(huán)語句實例詳解

    Python中分支語句與循環(huán)語句實例詳解

    這篇文章主要給大家介紹了關(guān)于Python中分支語句與循環(huán)語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Python實現(xiàn)從腳本里運行scrapy的方法

    Python實現(xiàn)從腳本里運行scrapy的方法

    這篇文章主要介紹了Python實現(xiàn)從腳本里運行scrapy的方法,實例分析了Python腳本運行的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖

    Python實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖

    這篇文章主要為大家詳細介紹了如何基于Python中g(shù)dal模塊,實現(xiàn)對大量柵格圖像批量繪制直方圖,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02

最新評論

孝感市| 清镇市| 关岭| 眉山市| 太和县| 鱼台县| 宿松县| 永城市| 浦北县| 上高县| 孝感市| 黄冈市| 当阳市| 桓台县| 嘉祥县| 孝感市| 德兴市| 余干县| 长乐市| 定襄县| 申扎县| 密云县| 黑龙江省| 汉沽区| 历史| 台东县| 渭源县| 凤庆县| 武陟县| 曲阳县| 芦山县| 南康市| 青浦区| 和平县| 新余市| 墨玉县| 平塘县| 高雄县| 呼和浩特市| 四川省| 镶黄旗|