解決済み: Fernet%3A pandas で csv に保存された文字列を復号化できない

Fernet は、Python の対称暗号化ライブラリであり、機密データに安全で使いやすい暗号化を提供します。 Fernet の一般的な使用例の XNUMX つは、CSV ファイルに保存する前にデータを暗号化し、許可された関係者だけがアクセスできるようにすることです。 ただし、特に Pandas ライブラリを使用している場合は、CSV ファイル内のこれらの暗号化された文字列を復号化するのが少し難しい場合があります。

この記事では、Fernet と Pandas を使用して CSV ファイルに保存された文字列を復号化する問題の解決策について説明します。 コードの段階的な説明を提供し、プロセスに関連する関連する関数とライブラリを掘り下げます。

まず、問題について詳しく説明しましょう。 CSV ファイルにデータを保存する前に Fernet 暗号化を使用してデータを保護する場合、ファイルの読み取りに Pandas を使用しているときにデータを復号化するのは難しい場合があります。 暗号化された文字列は、復号化中の整合性を確保するために適切な処理が必要です。

問題の解決策

この問題の潜在的な解決策は、カスタム関数を使用して、CSV ファイルから取得したデータフレームに適用することです。 Fernet ライブラリを使用して暗号化された文字列を復号化する関数を作成し、この関数を暗号化されたデータを含む Pandas データフレームに適用します。

コードの段階的な説明は次のとおりです。

1. まず、必要なライブラリをインポートする必要があります。

import pandas as pd
from cryptography.fernet import Fernet

2. 次に、Fernet キーを生成し、いくつかのサンプル データを暗号化しましょう。 次のデータを暗号化し、「data」と「encrypted」の XNUMX つの列を持つ「encrypted_data.csv」という名前の CSV ファイルに保存したとします。

key = Fernet.generate_key()
cipher_suite = Fernet(key)
data = "This is a sample text."
encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))

3. 次に、指定された Fernet キーで暗号化された文字列を復号化する関数を作成しましょう。

def decrypt_string(encrypted_string, fernet_key):
    cipher_suite = Fernet(fernet_key)
    return cipher_suite.decrypt(encrypted_string.encode("utf-8")).decode("utf-8")

4. Pandas を使用して、暗号化されたデータを含む CSV ファイルを読み取ることができます。

csv_data = pd.read_csv('encrypted_data.csv')

5.最後に、「apply」メソッドを使用して「decrypt_string」関数をデータフレームの暗号化された列に適用し、復号化されたデータを新しい列に保存します。 「apply」メソッドで追加の引数としてキーを渡す必要があることに注意してください。

csv_data['decrypted'] = csv_data['encrypted'].apply(decrypt_string, fernet_key=key)

フェルネット図書館

Fernet は、AES 対称キー暗号化を使用してデータを暗号化および復号化するための使いやすい方法を提供する、Python で人気のある暗号化ライブラリです。 このライブラリは、Fernet を使用して暗号化されたデータは、キーなしではそれ以上操作したり読み取ったりできないことを保証し、データの機密性と完全性を保証します。 Fernet は、暗号文に URL セーフ/base64 エンコーディングを使用するため、暗号化されたデータをファイルやデータベースに保存するのに適しています。

パンダライブラリ

パンダ Python のオープンソースのデータ操作およびデータ分析ライブラリです。 Series や DataFrame などのデータ構造と、データの処理、変換、視覚化のためのさまざまな機能を提供します。 Pandas は、CSV ファイルや SQL データベースなどの構造化データまたは表形式のデータを操作する場合に特に便利です。 このライブラリは、データ操作の多くの側面を簡素化し、データ分析と機械学習に不可欠なツールにします。

結論として、Fernet と Pandas を使用して CSV ファイルに保存された暗号化された文字列を復号化するには、この記事で説明する手順に従ってください。 カスタム復号化関数を作成してデータフレームに適用することで、CSV ファイルに保存されている機密データを効果的に復号化できます。

関連記事:

コメント