跳至頁尾內容
PYTHON 幫助

加密學 Python(對開發者的工作原理)

Cryptography 在數位時代中對於保護資料和通訊是至關重要的。 這個套件,透過其廣泛的程式庫,使加密技術的實作變得簡單。 其中一個在 Python 中最受歡迎的加密程式庫是 cryptography 套件,提供高階與低階介面的加密配方。 在本文後續中,我們還將探討一個名為 IronPDF 的靈活 PDF 生成程式庫,來自 Iron Software

關鍵特性

  1. 高階配方: Cryptography 包括用於常見加密任務的高階加密配方層,如對稱加密、對稱密碼、訊息摘要和金鑰衍生函式。 高階對稱加密配方幫助快速且簡單地實作複雜演算法。
  2. 低階介面: 它還提供加密演算法的低階介面,允許更細緻的控制和自定義。
  3. 對稱和非對稱加密: 該程式庫支援常見加密演算法,包括對稱加密(例如 AES)和非對稱加密(例如 RSA)演算法。
  4. 加密基元: 加密標準程式庫為 Python 開發者提供加密配方和基元,其中包括雜湊、金鑰衍生和訊息驗證碼(MACs)的基元。
  5. 開發者支援: 開發者可以提交問題報告,還提供一個用於開發討論的郵件列表。

安裝

要安裝 cryptography 套件,您可以使用 pip:

pip install cryptography
pip install cryptography
SHELL

基本用法

這是一個如何使用 cryptography 程式庫進行對稱加密的簡單範例,使用 Fernet 模組:

from cryptography.fernet import Fernet

# Generate a key
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# Encrypt a message
message = b"IronPDF is awesome"  # This must be a really secret message
cipher_text = cipher_suite.encrypt(message)
print(cipher_text)

# Decrypt the message
plain_text = cipher_suite.decrypt(cipher_text)
print(plain_text)
from cryptography.fernet import Fernet

# Generate a key
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# Encrypt a message
message = b"IronPDF is awesome"  # This must be a really secret message
cipher_text = cipher_suite.encrypt(message)
print(cipher_text)

# Decrypt the message
plain_text = cipher_suite.decrypt(cipher_text)
print(plain_text)
PYTHON

在這個例子中,我們生成一個金鑰,加密一條訊息,然後使用 Fernet 模組解密它。

輸出

cryptography Python(開發者如何使用):圖1

使用範例

  1. 資料加密: 在將敏感資料儲存到資料庫或透過網路傳輸之前加密它。
  2. 安全通訊: 確保雙方交換的訊息是機密且防篡改的。
  3. 驗證: 使用加密簽名驗證資料的完整性和真實性。

介紹 IronPDF

cryptography Python(開發者如何使用):圖2 - IronPDF: Python PDF 程式庫

IronPDF 是一個強大的 Python 程式庫,設計用於使用 HTML、CSS、圖片和 JavaScript 來建立、編輯和簽署 PDF,因其支援現代網頁標準。 它提供商業級的性能,並具備低記憶體佔用。 其主要功能包括:

HTML 轉 PDF 轉換: IronPDF 可以將 HTML文件、HTML字串和 URL 轉換為 PDF。 例如,使用 Chrome PDF 轉換器將網頁渲染為 PDF。

跨平臺支援: IronPDF 專為 Python 3+ 設計,還可以在 Windows、Mac、Linux 或雲平台上運行。
IronPDF is also available in .NET, Java, Python, and Node.js.

編輯和簽署: using IronPDF 設定屬性,使用密碼和權限增強安全性,並對您的 PDF 應用數位簽章。

頁面模板和設置: 您可以使用 IronPDF 自定義 PDF 的標題、頁腳、頁碼和可調整的邊距。 它還支持自定義紙張大小和響應式佈局。

標準相容性: IronPDF 符合 PDF 標準,包括 PDF/A 和 PDF/UA,支持 UTF-8 字元編碼,並管理如圖片、CSS 和字型等資產。

安裝

pip install ironpdf

使用 IronPDF 和 Cryptography 生成 PDF 文件

先決條件

  1. 確保已安裝 Visual Studio Code
  2. 已安裝 Python 版本3

首先,讓我們建立一個 Python 文件來新增我們的腳本。

打開 Visual Studio Code 並建立一個文件,cryptographyDemo.py

安裝必要的庫:

:ProductInstall pip install cryptography ironpdf
:ProductInstall pip install cryptography ironpdf
SHELL

然後新增以下程式碼以展示 IronPDF 和 cryptography Python 套件的用法:

from cryptography.fernet import Fernet
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your key"

# Create a PDF from an HTML string using Python
content = "<h1>Awesome IronPDF with Cryptography</h1>"

# Generate a key
content += "<h2>Generate a key</h2>"
key = Fernet.generate_key()
cipher_suite = Fernet(key)
content += "<p>Fernet.generate_key() = " + str(key) + "</p>"

# Encrypt a message
content += "<h2>Encrypt a message</h2>"
message = b"IronPDF is awesome"
cipher_text = cipher_suite.encrypt(message)
content += "<p>cipher_suite.encrypt(message)</p>"
content += "<p>" + str(cipher_text) + "</p>"

# Decrypt the message
content += "<h2>Decrypt the message</h2>"
plain_text = cipher_suite.decrypt(cipher_text)
content += "<p>cipher_suite.decrypt(cipher_text)</p>"
content += "<p>" + plain_text.decode() + "</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file or Stream
pdf.SaveAs("Demo-cryptography.pdf")
from cryptography.fernet import Fernet
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your key"

# Create a PDF from an HTML string using Python
content = "<h1>Awesome IronPDF with Cryptography</h1>"

# Generate a key
content += "<h2>Generate a key</h2>"
key = Fernet.generate_key()
cipher_suite = Fernet(key)
content += "<p>Fernet.generate_key() = " + str(key) + "</p>"

# Encrypt a message
content += "<h2>Encrypt a message</h2>"
message = b"IronPDF is awesome"
cipher_text = cipher_suite.encrypt(message)
content += "<p>cipher_suite.encrypt(message)</p>"
content += "<p>" + str(cipher_text) + "</p>"

# Decrypt the message
content += "<h2>Decrypt the message</h2>"
plain_text = cipher_suite.decrypt(cipher_text)
content += "<p>cipher_suite.decrypt(cipher_text)</p>"
content += "<p>" + plain_text.decode() + "</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file or Stream
pdf.SaveAs("Demo-cryptography.pdf")
PYTHON

程式碼說明

這段程式碼片段演示了如何使用 cryptography 程式庫的 Fernet 模組來進行訊息的加密和解密,然後使用 IronPDF 生成一個 PDF 文件。 以下是每個程式碼部分的解釋:

  1. 導入和授權金鑰設置:

    • cryptography.fernet 模組導入 Fernet 類,用於加密和解密功能。
    • 從 IronPDF 導入 ChromePdfRendererLicense 用於 PDF 生成。
    • 設定 IronPDF 的授權金鑰以啟用其功能。
  2. HTML內容設置: 將 HTML 標記初始化到要包含在 PDF 文件中的 content 變數。

  3. 生成金鑰: 使用 Fernet.generate_key() 生成一個新金鑰,並用生成的金鑰建立一個 Fernet 密碼套件物件 (cipher_suite)。 將生成的金鑰包括在 HTML 內容中。

  4. 加密訊息: 定義一個訊息 (message) 進行加密 (b"IronPDF is awesome")。 使用 cipher_suite.encrypt() 方法加密訊息,並將密文包括在 HTML 內容中。

  5. 解密訊息: 使用 cipher_suite.decrypt() 解密加密的 cipher_text,並將解密後的純文字包括在 HTML 內容中。

  6. PDF 生成: 使用 ChromePdfRenderercontent HTML 字串渲染為 PDF 文件。 將生成的 PDF 文件保存為 "Demo-cryptography.pdf"。

此設置允許建立一個 PDF 文件,顯示由 cryptography 程式庫提供的加密和解密功能,結合 IronPDF 的 PDF 生成功能。

輸出

cryptography Python(開發者如何使用):圖3

PDF

cryptography Python(開發者如何使用):圖4

IronPDF 授權

IronPDF 提供試用授權金鑰,以便使用者在購買之前檢查其廣泛的功能。

請將授權金鑰放置在腳本開始處,然後再使用 IronPDF 套件

from ironpdf import License

# Apply your license key
License.LicenseKey = "key"
from ironpdf import License

# Apply your license key
License.LicenseKey = "key"
PYTHON

結論

Python 中的 cryptography 程式庫是一個用於實作安全資料加密和解密的強大工具。 其易用性和全面的功能使其成為開發者希望增強應用程式安全性的絕佳選擇。

另一方面,IronPDF 是一個功能強大且功能豐富的 PDF 生成程式庫,將幫助以標準方式記錄結果。 這兩個程式庫都可以為開發者提升技能而創造奇蹟。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話