【Python暗号化】cryptographyのインストール

【Python暗号化】cryptographyのインストール プログラミング

Pythonにおいて、暗号化・復号化に本気で取り組みたいですか?
その場合、cryptographyがその選択肢となります。

本記事の内容

  • cryptographyとは?
  • cryptographyのシステム要件
  • cryptographyのインストール
  • cryptographyの動作確認

それでは、上記に沿って解説していきます。

cryptographyとは?

cryptographyは、暗号化を可能にするPythonライブラリです。
cryptographyの目標は、「暗号化の標準ライブラリ」になることだと記されています。

そして、cryptographyは高レベル(hight-level)、低レベル(low-level)の両方に対応しています。
極端に言うと、何も考えずに使えるレベルが高レベルです。
ある程度の理解を必要とするのが、低レベルになります。

cryptographyの公式ドキュメント
https://cryptography.io/en/latest/

両方のレベルに対応するため、マニュアルが用意されています。
結構しっかりと作り込まれている感じです。

ただし、低レベルに関してはセキュリティの知識がかなり必要になります。
その分だけ、高度な実装も可能ということです。
したがって、本気で暗号化に取り組みたい場合はcryptographyがおススメです。

以上、cryptographyについての説明でした。
次は、cryptographyのシステム要件を確認しましょう。

cryptographyのシステム要件

現時点(2021年7月)でのcryptographyの最新バージョンは、3.4.7となります。
この最新バージョンは、2021年3月26日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。

  • Windows
  • macOS
  • Linux

基本的には、OSは問わないということです。
そして、サポート対象となるPythonのバージョンは以下。

  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

下記のPythonの公式開発サイクルに準じています。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

上記の公式開発サイクルには、それなりに意味があるはずです。
昨今だと、セキュリティの改善にその意味が大きいでしょう。

そうだとすれば、公式開発サイクルを順守することはとても重要なことです。
ましてや、セキュリティをターゲットにしたライブラリなら必須でしょう。

その意味では、cryptographyは合格だと言えます。
「暗号化の標準ライブラリ」を目指す以上は、当然と言えば当然かもしれません。

以上、cryptographyのシステム要件について説明しました。
次は、cryptographyをインストールしていきます。

cryptographyのインストール

最初に、Pythonのバージョンを確認しておきます。

>python -V
Python 3.9.6

ライブラリだけセキュリティの意識が高くても意味がありません。
Python自体のバージョンも最新にしておきましょう。
Pythonのアップグレードは、次の記事でまとめています。

次に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.0.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、 cryptographyのインストールです。
cryptographyのインストールは、以下のコマンドとなります。

pip install cryptography

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package      Version
------------ -------
cffi         1.14.5
cryptography 3.4.7
pip          21.1.3
pycparser    2.20
setuptools   57.0.0

依存するパッケージ数は、気にする数ではありません。
比較的容易に導入もしやすいです。

以上、cryptographyのインストールについての説明でした。
最後に、cryptographyの動作確認を行います。

cryptographyの動作確認

cryptographyの動作確認は、次のコードで行います。

from cryptography.fernet import Fernet

# 暗号化・復号化対象のメッセージ
data = "日本語で書かれた秘密のメッセージ".encode("utf-8")

# インスタンス生成
key = Fernet.generate_key()
f = Fernet(key)

# 暗号化されたデータ
token = f.encrypt(data)
print(token)

# 復号化されたデータ
data_decrypt = f.decrypt(token)
print(f.decrypt(token).decode("utf-8"))

上記を実行すると、次のように表示されます。

data_encrypt:b'gAAAAABg4URcN46a2RJ4JQfWzm2UMDMyeDU-8LBk7AuWz2UWgNACm_fUJVgtLTZnOWfM7znnwW7eRcn_h_cw09yaVna8PKD1DONzaL5j_fenTggbPXcRaNAALVqPx3v-ia7-smmxuILRkqO6yKx64zrPibcLy_JPlA=='
data_decrypt:日本語で書かれた秘密のメッセージ

メッセージが復元できれば、cryptographyの動作確認としては十分です。

以上、cryptographyの動作確認についての説明でした。

タイトルとURLをコピーしました