cryptography Python(開発者向けのしくみ)
暗号化は、デジタル時代におけるデータと通信を保護するために不可欠です。 このパッケージは、その広範なライブラリと共に、暗号技術の実装を簡単にします。 Pythonで最も人気のある暗号化用ライブラリの1つが、cryptographicなレシピを提供するcryptographyパッケージで、高レベルと低レベルの両方のインターフェースを持っています。 記事の後半では、IronPDFという万能なPDF生成ライブラリをIron Softwareからも取り上げます。
主要な特徴
- 高レベルレツピ: 暗号化は、対称暗号化、共通鍵暗号、メッセージダイジェスト、鍵導出関数などの一般的な暗号タスクのための高レベルの暗号レシピレイヤーを含んでいます。 高レベルの対称暗号化レシピは、複雑なアルゴリズムを迅速かつ簡単に実装するのに役立ちます。
- 低レベルインターフェース: これはまた、暗号化アルゴリズムへの低レベルインターフェースを提供し、より詳細な制御とカスタマイズを可能にします。
- 対称および非対称暗号化: ライブラリは、対称暗号化(例:AES)および非対称暗号化(例:RSA)アルゴリズムを含む共通暗号アルゴリズムをサポートしています。
- 暗号化プリミティブ: 暗号化標準ライブラリは、ハッシュ化、鍵導出、メッセージ認証コード(MAC)用のプリミティブを含む暗号化レシピとプリミティブをPython開発者に提供します。
- 開発者サポート: 開発者は問題報告を提出でき、開発ディスカッションのためのメーリングリストも提供されます。
インストール
暗号化パッケージをインストールするには、pipを使用できます。
pip install cryptographypip install cryptography基本的な使用法
これは、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)この例では、鍵を生成し、メッセージを暗号化し、Fernetモジュールを使用して復号化します。
出力
![]()
使用例
- データ暗号化: データベースに保存する前やネットワークを介して送信する前に、機密データを暗号化します。
- 安全な通信: 当事者間で交換されるメッセージが機密性があり改ざんされないようにします。
- 認証: 暗号署名を用いてデータの整合性と信頼性を検証します。
IronPDFの紹介

IronPDFは、最新のウェブ標準のサポートにより、HTML、CSS、画像、JavaScriptを使用してPDFを作成、編集、署名できる強力なPythonライブラリです。 低メモリフットプリントながら商用グレードのパフォーマンスを備えています。 主な機能は以下のとおりです:
HTMLからPDFへの変換:
IronPDFはHTMLファイル、HTML文字列、およびURLをPDFに変換できます。 たとえば、Chrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングします。
クロスプラットフォームサポート:
IronPDFはPython 3+のために設計されており、Windows、Mac、Linux、またはクラウドプラットフォームでも動作します。
IronPDFは.NET、Java、Python、Node.jsでも利用可能です。
編集と署名:
IronPDFを使用してプロパティを設定し、パスワードと権限によるセキュリティを追加し、デジタル署名をPDFに適用します。
ページテンプレートと設定:
IronPDFを使用してヘッダー、フッター、ページ番号、および調整可能な余白でPDFをカスタマイズできます。 さらに、カスタム用紙サイズおよびレスポンシブレイアウトをサポートします。
標準準拠:
IronPDFはPDF/AおよびPDF/UAを含むPDF標準に準拠しており、UTF-8文字エンコーディングをサポートし、画像、CSS、フォントなどのアセットを管理します。
インストール
pip install ironpdf
IronPDFと暗号化を使用してPDFドキュメントを生成します。
前提条件
- Visual Studio Codeがインストールされていることを確認します
- Pythonバージョン3がインストールされています。
まず、スクリプトを追加するPythonファイルを作成してください。
Visual Studio Codeを開き、ファイルcryptographyDemo.pyを作成します。
必要なライブラリをインストール:
pip install cryptography
pip install ironpdfpip install cryptography
pip install ironpdfその後、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")コードの説明
このコードスニペットは、メッセージの暗号化と復号化を実行するためのcryptographyライブラリのFernetモジュールの使用方法を示し、その後IronPDFを使用してPDFドキュメントを生成します。 コードの各部分の説明は次のとおりです。
インポートとライセンスキーの設定:
- 暗号化および復号化機能のために、
cryptography.fernetモジュールからFernetクラスをインポートします。 - PDF生成のためにIronPDFから
ChromePdfRendererとLicenseをインポートします。 - IronPDFの機能を有効にするためにライセンスキーを設定します。
- 暗号化および復号化機能のために、
HTMLコンテンツの設定: PDFドキュメントに含まれるHTMLマークアップで
content変数を初期化します。キーの生成:
Fernet.generate_key()を使用して新しいキーを生成し、生成されたキーでFernet暗号スイートオブジェクト(cipher_suite)を生成します。 生成されたキーをHTMLコンテンツに含めます。メッセージの暗号化: 暗号化するためのメッセージ(
message)を定義します(b"IronPDF is awesome")。cipher_suite.encrypt()メソッドを使用してメッセージを暗号化し、暗号文をHTMLコンテンツに含めます。メッセージの復号化:
cipher_suite.decrypt()を使用して暗号化されたcipher_textを復号化し、復号化された平文をHTMLコンテンツに含めます。- PDF生成:
ChromePdfRendererを使用して、contentHTML文字列をPDFドキュメントにレンダリングします。 生成されたPDFファイルを"Demo-cryptography.pdf"として保存します。
このセットアップにより、IronPDFのPDF生成機能と一緒に、cryptographyライブラリの暗号化および復号化機能を紹介するPDFドキュメントを作成できます。
出力


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"結論
cryptographyライブラリは、Pythonにおいて安全なデータの暗号化と復号化を実装するための強力なツールです。 その使いやすさと包括的な機能は、アプリケーションのセキュリティを向上させたい開発者にとって優れた選択肢です。
一方で、IronPDFは、多用途で機能豊富なPDF生成ライブラリで、結果を標準的な方法で文書化するのに役立ちます。 これらの両方のライブラリは、開発者がスキルセットを向上させるために素晴らしい成果を上げることができます。










