フッターコンテンツにスキップ
PYTHONヘルプ

cryptography Python(開発者向けのしくみ)

暗号化は、デジタル時代におけるデータと通信を保護するために不可欠です。 このパッケージは、その広範なライブラリと共に、暗号技術の実装を簡単にします。 Pythonで最も人気のある暗号化用ライブラリの1つが、cryptographicなレシピを提供するcryptographyパッケージで、高レベルと低レベルの両方のインターフェースを持っています。 Later in the article, we will also look into a versatile PDF generation library called IronPDF from Iron Software.

主要な特徴

  1. 高レベルレツピ: 暗号化は、対称暗号化、共通鍵暗号、メッセージダイジェスト、鍵導出関数などの一般的な暗号タスクのための高レベルの暗号レシピレイヤーを含んでいます。 高レベルの対称暗号化レシピは、複雑なアルゴリズムを迅速かつ簡単に実装するのに役立ちます。
  2. 低レベルインターフェース: これはまた、暗号化アルゴリズムへの低レベルインターフェースを提供し、より詳細な制御とカスタマイズを可能にします。
  3. 対称および非対称暗号化: ライブラリは、対称暗号化(例:AES)および非対称暗号化(例:RSA)アルゴリズムを含む共通暗号アルゴリズムをサポートしています。
  4. 暗号化プリミティブ: 暗号化標準ライブラリは、ハッシュ化、鍵導出、メッセージ認証コード(MAC)用のプリミティブを含む暗号化レシピとプリミティブをPython開発者に提供します。
  5. 開発者サポート: 開発者は問題報告を提出でき、開発ディスカッションのためのメーリングリストも提供されます。

インストール

暗号化パッケージをインストールするには、pipを使用できます。

pip install cryptography
pip install cryptography
SHELL

基本的な使用法

これは、Fernetモジュールを使用して対称暗号化を行うためのcryptographyライブラリの簡単な例です。

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モジュールを使用して復号化します。

出力

暗号化 Python (開発者向けの動作方法): 図1

使用例

  1. データ暗号化: データベースに保存する前やネットワークを介して送信する前に、機密データを暗号化します。
  2. 安全な通信: 当事者間で交換されるメッセージが機密性があり改ざんされないようにします。
  3. 認証: 暗号署名を用いてデータの整合性と信頼性を検証します。

IronPDFの紹介

暗号化 Python (開発者向けの動作方法): 図2 - IronPDF: The Python PDF Library

IronPDFは、最新のウェブ標準のサポートにより、HTML、CSS、画像、JavaScriptを使用してPDFを作成、編集、署名できる強力なPythonライブラリです。 商業グレードのパフォーマンスを提供し、低メモリフットプリントです。 主な特徴には以下が含まれます:

HTMLからPDFへの変換: IronPDFはHTMLファイル、HTML文字列、およびURLをPDFに変換できます。 たとえば、Chrome PDFレンダラーを使用してWebページをPDFとしてレンダリングします。

クロスプラットフォームサポート: IronPDFはPython 3+のために設計されており、Windows、Mac、Linux、またはクラウドプラットフォームでも動作します。
IronPDF is also available in .NET, Java, Python, and Node.js.

編集と署名: IronPDFを使用してプロパティを設定し、パスワードと権限によるセキュリティを追加し、デジタル署名をPDFに適用します。

ページテンプレートと設定: IronPDFを使用してヘッダー、フッター、ページ番号、および調整可能な余白でPDFをカスタマイズできます。 また、カスタム用紙サイズとレスポンシブレイアウトもサポートされています。

標準準拠: IronPDFはPDF/AおよびPDF/UAを含むPDF標準に準拠しており、UTF-8文字エンコーディングをサポートし、画像、CSS、フォントなどのアセットを管理します。

インストール

 pip install ironpdf

IronPDFと暗号化を使用してPDFドキュメントを生成します。

前提条件

  1. Visual Studio Codeがインストールされていることを確認します
  2. Pythonバージョン3がインストールされています

まず、スクリプトを追加するためのPythonファイルを作成しましょう。

Visual Studio Codeを開き、ファイルcryptographyDemo.pyを作成します。

必要なライブラリをインストールします:

pip install cryptography
pip install ironpdf
pip install cryptography
pip install ironpdf
SHELL

その後、IronPDFと暗号化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クラスをインポートします。
    • PDF生成のためにIronPDFからChromePdfRendererLicenseをインポートします。
    • IronPDFの機能を有効にするためにライセンスキーを設定します。
  2. HTMLコンテンツの設定: PDFドキュメントに含まれるHTMLマークアップで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生成: ChromePdfRendererを使用して、content HTML文字列をPDFドキュメントにレンダリングします。 生成されたPDFファイルを"Demo-cryptography.pdf"として保存します。

このセットアップにより、IronPDFのPDF生成機能と一緒に、cryptographyライブラリの暗号化および復号化機能を紹介するPDFドキュメントを作成できます。

出力

暗号化 Python (開発者向けの動作方法): 図3

PDF

暗号化 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

結論

cryptographyライブラリは、Pythonにおいて安全なデータの暗号化と復号化を実装するための強力なツールです。 その使いやすさと包括的な機能は、アプリケーションのセキュリティを向上させたい開発者にとって優れた選択肢です。

一方で、IronPDFは、多用途で機能豊富なPDF生成ライブラリで、結果を標準的な方法で文書化するのに役立ちます。 これらの両方のライブラリは、開発者がスキルセットを向上させるのに役立つ素晴らしいツールです。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。