แก้ไขแล้ว: Fernet%3A ไม่สามารถถอดรหัสสตริงที่บันทึกใน csv ด้วย pandas

Fernet เป็นไลบรารีการเข้ารหัสแบบสมมาตรใน Python ที่ให้การเข้ารหัสที่ปลอดภัยและใช้งานง่ายสำหรับข้อมูลที่ละเอียดอ่อน กรณีการใช้งานทั่วไปอย่างหนึ่งสำหรับ Fernet คือการเข้ารหัสข้อมูลก่อนที่จะจัดเก็บไว้ในไฟล์ CSV เพื่อให้มั่นใจว่าเฉพาะบุคคลที่ได้รับอนุญาตเท่านั้นที่สามารถเข้าถึงได้ อย่างไรก็ตาม การถอดรหัสสตริงที่เข้ารหัสเหล่านี้ในไฟล์ CSV อาจยุ่งยากเล็กน้อย โดยเฉพาะเมื่อใช้ไลบรารี่ของ Pandas

ในบทความนี้ เราจะพูดถึงวิธีแก้ปัญหาการถอดรหัสสตริงที่บันทึกไว้ในไฟล์ CSV โดยใช้ Fernet และ Pandas เราจะให้คำอธิบายทีละขั้นตอนของโค้ด และเจาะลึกถึงฟังก์ชันและไลบรารีที่เกี่ยวข้องในกระบวนการ

ในการเริ่มต้นให้หารือเกี่ยวกับปัญหาในรายละเอียด เมื่อใช้การเข้ารหัส Fernet เพื่อรักษาความปลอดภัยข้อมูลก่อนที่จะจัดเก็บไว้ในไฟล์ CSV อาจเป็นเรื่องยากที่จะถอดรหัสข้อมูลกลับในขณะที่ใช้ Pandas เพื่ออ่านไฟล์ สตริงที่เข้ารหัสต้องการการจัดการที่เหมาะสมเพื่อให้แน่ใจว่ามีความสมบูรณ์ระหว่างการถอดรหัส

วิธีแก้ปัญหา

วิธีแก้ไขที่เป็นไปได้สำหรับปัญหานี้คือการใช้ฟังก์ชันแบบกำหนดเองและนำไปใช้กับดาต้าเฟรมที่ได้รับจากไฟล์ CSV เราจะสร้างฟังก์ชันเพื่อถอดรหัสสตริงที่เข้ารหัสโดยใช้ไลบรารี Fernet จากนั้นใช้ฟังก์ชันนี้กับดาต้าเฟรมของ Pandas ที่มีข้อมูลที่เข้ารหัส

นี่คือคำอธิบายทีละขั้นตอนของรหัส:

1. ขั้นแรก เราต้องนำเข้าไลบรารีที่จำเป็น:

import pandas as pd
from cryptography.fernet import Fernet

2. จากนั้นมาสร้างคีย์ Fernet และเข้ารหัสข้อมูลตัวอย่างบางส่วน สมมติว่าเราได้เข้ารหัสข้อมูลต่อไปนี้และบันทึกไว้ในไฟล์ CSV ชื่อ “encrypted_data.csv” โดยมีสองคอลัมน์คือ “data” และ “encrypted”:

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. เราสามารถอ่านไฟล์ CSV ที่มีข้อมูลที่เข้ารหัสโดยใช้ Pandas:

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

5. สุดท้าย ใช้ฟังก์ชัน 'decrypt_string' กับคอลัมน์ที่เข้ารหัสของ dataframe โดยใช้วิธี 'apply' และเก็บข้อมูลที่ถอดรหัสไว้ในคอลัมน์ใหม่ โปรดทราบว่าคุณต้องส่งคีย์เป็นอาร์กิวเมนต์เพิ่มเติมในเมธอด 'ใช้':

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

ห้องสมุดเฟิร์น

เฟอร์เน็ต เป็นไลบรารีการเข้ารหัสที่ได้รับความนิยมใน Python ซึ่งมีวิธีการที่ใช้งานง่ายสำหรับการเข้ารหัสและถอดรหัสข้อมูลด้วยการเข้ารหัสแบบสมมาตรคีย์ AES ห้องสมุดรับประกันว่าข้อมูลที่เข้ารหัสโดยใช้ Fernet ไม่สามารถจัดการหรืออ่านเพิ่มเติมได้หากไม่มีคีย์ ทำให้มั่นใจได้ถึงความลับและความสมบูรณ์ของข้อมูล Fernet ใช้การเข้ารหัส URL-safe/base64 สำหรับข้อความไซเฟอร์ ซึ่งทำให้เหมาะสำหรับการจัดเก็บข้อมูลที่เข้ารหัสในไฟล์หรือฐานข้อมูล

ห้องสมุดหมีแพนด้า

นุ่น เป็นการจัดการข้อมูลโอเพ่นซอร์สและไลบรารีการวิเคราะห์ข้อมูลใน Python มีโครงสร้างข้อมูล เช่น Series และ DataFrame และฟังก์ชันต่างๆ สำหรับจัดการ แปลง และแสดงข้อมูลเป็นภาพ Pandas มีประโยชน์อย่างยิ่งสำหรับการทำงานกับข้อมูลที่มีโครงสร้างหรือตาราง เช่น ไฟล์ CSV หรือฐานข้อมูล SQL ไลบรารีนี้ทำให้การจัดการข้อมูลหลายด้านง่ายขึ้น ทำให้เป็นเครื่องมือที่จำเป็นสำหรับการวิเคราะห์ข้อมูลและการเรียนรู้ของเครื่อง

โดยสรุป การถอดรหัสสตริงเข้ารหัสที่บันทึกไว้ในไฟล์ CSV โดยใช้ Fernet และ Pandas สามารถทำได้โดยทำตามขั้นตอนในบทความนี้ ด้วยการสร้างฟังก์ชันการถอดรหัสแบบกำหนดเองและนำไปใช้กับดาต้าเฟรม เราสามารถถอดรหัสข้อมูลที่ละเอียดอ่อนที่จัดเก็บไว้ในไฟล์ CSV ได้อย่างมีประสิทธิภาพ

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น