Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでデータを暗号化および復号化する方法


はじめに

暗号化とは何ですか?暗号化では、プレーンテキストをデータの暗号化と呼ばれる暗号化テキストに変換し、暗号化テキストをデータの復号化と呼ばれるプレーンテキストに変換します。

フェルネットモジュールを使用します Pythonを使用してデータを暗号化および復号化するための暗号化パッケージに含まれています。フェルネットモジュールを使用している間、暗号化されたデータを読み取ったり操作したりできない一意のキーが生成されます。

何を扱うかがわかったので、始めましょう。

はじめに

暗号化モジュールはPythonにパッケージ化されていないため、pipパッケージマネージャーを使用してインストールする必要があります。これを行うには、端末を起動して、以下のコードを入力します。

pipインストール暗号化

パッケージをダウンロードしてインストールしたら、そのモジュールをインポートできます。

フェルネットモジュールを使用して、データの暗号化と復号化を行います。それでは、Pythonスクリプトにインポートしましょう。

 from cryptography.fernet import Fernet 

−キャピタライゼーションが正しいことを確認してください。

これで、スクリプトの作成を開始する準備が整いました。

キーの生成

データの暗号化を開始するには、最初にフェルネットキーを作成する必要があります 。

 key =Fernet.generate_key()f =Fernet(key)

上記の行では、generate_key()メソッドを使用してキーを生成し、そのキーを次の行の変数「f」に割り当てました。

これで、キーが変数に保存され、すぐに使用できるようになりました。

必要に応じて、キーを印刷して保存できます。印刷中は必ずデコード機能を使用してください。

 print(key.decode())

出力

 Bq64GE-93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U =

データの暗号化

上記のキーからデータを暗号化するには、暗号化方式を使用する必要があります。

 encode_data =f.encrypt(b "このメッセージは暗号化されており、表示できません!")

以上で、上記の文は暗号化されています。

暗号化されたメッセージを表示するには、メッセージを印刷する必要があります。

 print(encrypted_data)

出力

 b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD--xJdkTycKH2iurC_o 

−バイト形式に変換するために、文の前にbがあります。代わりにencode()メソッドを使用することもできます。

データの復号化

暗号文ができたので、それを単純に読み取り可能なテキストに戻す方法を見てみましょう。

フェルネットモジュールの復号化メソッドを使用して復号化を実現できます。

 decrypted_data =f.decrypt(encrypted_data)#fは、key.print(decrypted_data)の値を持つ変数です

出力

 b'このメッセージは暗号化されており、表示できません!' 

−上記の出力を見ると、印刷されたプレーンテキストの前にb’があることがわかります。これは、暗号化されたデータがバイト形式に変換されているためです。プレーンテキストだけを取得するには、デコード機能を使用する必要があります。

 print(decrypted_data.decode())

出力

このメッセージは暗号化されているため表示できません!

注-同じキーを使用してデータを暗号化および復号化できます。つまり、キーの値を出力して保存するとします。変数に割り当てることで同じキーを使用できます。例->

 f =Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U =)#実際のキーの値が指定されます。

 from cryptography.fernet import Fernetkey =Fernet.generate_key()print( "Key:"、key.decode())f =Fernet(key)encrypted_data =f.encrypt(b "このメッセージは暗号化されているため、暗号化できません。見た! ")print("暗号化後: "、encrypted_data)decrypted_data =f.decrypt(encrypted_data)print(decrypted_data)print("復号化後: "、decrypted_data.decode())

出力

<前>キー:u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI =暗号化後:b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ ==「b'Thisメッセージが暗号化されていると見ることができない!」復号後:このメッセージは、暗号化されていると見ることができません。

結論

これで、Pythonの暗号化パッケージを使用してデータを暗号化および復号化する方法を学びました。

キーを.txtファイルとして保存し、それを取得してパスワードを暗号化および保存したり、データベースからパスワードを復号化して一致するかどうかを確認したりすることもできます。ミニプロジェクトでも大規模プロジェクトでも、これを使用できるケースは他にもさまざまです。

暗号化モジュールの詳細については、公式ドキュメント(https://pypi.org/project/cryptography/

)を参照してください。
  1. Pythonでのデータ分析と視覚化?

    Pythonは、主にnumpy、pandas、matplotlib、seabornなどのデータ分析と視覚化のための多数のライブラリを提供します。このセクションでは、numpyの上に構築されたオープンソースライブラリであるデータ分析と視覚化のためのpandasライブラリについて説明します。 これにより、迅速な分析とデータのクリーニングと準備を行うことができます。Pandasには、以下で説明する多数の組み込みの視覚化機能も用意されています。 インストール パンダをインストールするには、ターミナルで以下のコマンドを実行します- pipinstall pandas Orweにはanacondaが

  2. Androidデバイスでファイルを暗号化および復号化する方法

    Androidデバイスでファイルを暗号化すると、それらのファイルが盗まれるのを防ぐことができます。また、ファイルが盗まれても、適切なキーを使用して復号化されない限り、ファイルを読み取ることはできません。それが行うことは、ファイルを文字化けした情報として、通常は情報を解読できないようにするAES128またはAES256標準に提示することです。 Androidデバイスでファイルを暗号化する方法は次のとおりです。すべてを暗号化するかどうか 携帯電話または指定したファイルで。 Androidデバイス上のすべてを暗号化する Androidで最も包括的な暗号化方法は、フルディスク暗号化を実行することで