حل شدہ: Fernet%3A پانڈوں کے ساتھ csv میں محفوظ کردہ تاروں کو ڈکرپٹ نہیں کر سکتا

Fernet Python میں ایک ہم آہنگ انکرپشن لائبریری ہے جو حساس ڈیٹا کے لیے محفوظ اور استعمال میں آسان انکرپشن فراہم کرتی ہے۔ Fernet کے لیے ایک عام استعمال کی صورت یہ ہے کہ ڈیٹا کو CSV فائل میں اسٹور کرنے سے پہلے انکرپٹ کیا جائے، اس بات کو یقینی بنانا کہ صرف مجاز فریق ہی اس تک رسائی حاصل کر سکیں۔ تاہم، CSV فائل میں ان انکرپٹڈ تاروں کو ڈکرپٹ کرنا تھوڑا مشکل ہو سکتا ہے، خاص طور پر جب پانڈاس لائبریری کا استعمال کریں۔

اس مضمون میں، ہم فرنیٹ اور پانڈاس کا استعمال کرتے ہوئے CSV فائل میں محفوظ کردہ تاروں کو ڈکرپٹ کرنے کے مسئلے کے حل پر بات کریں گے۔ ہم کوڈ کی مرحلہ وار وضاحت فراہم کریں گے، اور اس عمل میں شامل متعلقہ افعال اور لائبریریوں کا جائزہ لیں گے۔

شروع کرنے کے لیے، آئیے اس مسئلے پر تفصیل سے بات کریں۔ جب CSV فائل میں ڈیٹا کو محفوظ کرنے کے لیے Fernet انکرپشن کا استعمال کرتے ہیں، تو فائل کو پڑھنے کے لیے Pandas کا استعمال کرتے ہوئے ڈیٹا کو واپس ڈیکرپٹ کرنا مشکل ہو سکتا ہے۔ خفیہ کردہ تاروں کو ڈکرپشن کے دوران ان کی سالمیت کو یقینی بنانے کے لیے مناسب ہینڈلنگ کی ضرورت ہوتی ہے۔

مسئلے کا حل

اس مسئلے کا ایک ممکنہ حل حسب ضرورت فنکشنز کا استعمال کرنا اور انہیں CSV فائل سے حاصل کردہ ڈیٹا فریم پر لاگو کرنا ہے۔ ہم فرنٹ لائبریری کا استعمال کرتے ہوئے انکرپٹڈ سٹرنگز کو ڈیکرپٹ کرنے کے لیے ایک فنکشن بنائیں گے، اور پھر اس فنکشن کو پانڈاس ڈیٹا فریم پر لاگو کریں گے جس میں انکرپٹڈ ڈیٹا ہے۔

یہاں کوڈ کی مرحلہ وار وضاحت ہے:

1. سب سے پہلے، ہمیں ضروری لائبریریوں کو درآمد کرنے کی ضرورت ہے:

import pandas as pd
from cryptography.fernet import Fernet

2. پھر، ایک Fernet کلید بنائیں اور کچھ نمونہ ڈیٹا کو خفیہ کریں۔ فرض کریں کہ ہم نے درج ذیل ڈیٹا کو انکرپٹ کیا ہے اور اسے "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. اب، دی گئی فرنیٹ کلید کے ساتھ انکرپٹڈ سٹرنگز کو ڈیکرپٹ کرنے کے لیے ایک فنکشن بنائیں:

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 فائل پڑھ سکتے ہیں:

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

5. آخر میں، 'Apply' طریقہ استعمال کرتے ہوئے ڈیٹا فریم کے انکرپٹڈ کالم میں 'decrypt_string' فنکشن کا اطلاق کریں اور ڈکرپٹ شدہ ڈیٹا کو ایک نئے کالم میں اسٹور کریں۔ نوٹ کریں کہ آپ کو 'درخواست' کے طریقہ کار میں ایک اضافی دلیل کے طور پر کلید پاس کرنے کی ضرورت ہے:

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

فرنیٹ لائبریری

فرنٹ Python میں ایک مشہور کرپٹوگرافک لائبریری ہے جو AES symmetric-key cryptography کے ساتھ ڈیٹا کو خفیہ کرنے اور ڈکرپٹ کرنے کے لیے استعمال میں آسان طریقے فراہم کرتی ہے۔ لائبریری اس بات کی ضمانت دیتی ہے کہ فیرنیٹ کا استعمال کرتے ہوئے خفیہ کردہ ڈیٹا کو مزید ہیرا پھیری یا کلید کے بغیر پڑھا نہیں جا سکتا، ڈیٹا کی رازداری اور سالمیت کو یقینی بناتا ہے۔ فرنیٹ سائفر ٹیکسٹس کے لیے URL-safe/base64 انکوڈنگ کا استعمال کرتا ہے، جو اسے فائلوں یا ڈیٹا بیس میں خفیہ کردہ ڈیٹا کو ذخیرہ کرنے کے لیے موزوں بناتا ہے۔

پانڈاس لائبریری

پانڈاس Python میں ایک اوپن سورس ڈیٹا ہیرا پھیری اور ڈیٹا کے تجزیہ کی لائبریری ہے۔ یہ ڈیٹا ڈھانچہ فراہم کرتا ہے، جیسے سیریز اور ڈیٹا فریم، اور ڈیٹا کو ہینڈل کرنے، تبدیل کرنے اور دیکھنے کے لیے مختلف فنکشنز۔ پانڈا خاص طور پر سٹرکچرڈ یا ٹیبلر ڈیٹا، جیسے CSV فائلز یا SQL ڈیٹا بیس کے ساتھ کام کرنے کے لیے مفید ہے۔ یہ لائبریری ڈیٹا کے ہیرا پھیری کے بہت سے پہلوؤں کو آسان بناتی ہے، اسے ڈیٹا کے تجزیہ اور مشین لرننگ کے لیے ایک ضروری ٹول بناتی ہے۔

آخر میں، فرنیٹ اور پانڈاس کا استعمال کرتے ہوئے CSV فائل میں محفوظ کردہ انکرپٹڈ تاروں کو ڈیکرپٹ کرنا اس مضمون میں فراہم کردہ مراحل پر عمل کرکے حاصل کیا جا سکتا ہے۔ ایک حسب ضرورت ڈکرپشن فنکشن بنا کر اور اسے ڈیٹا فریم پر لاگو کر کے، ہم CSV فائل میں محفوظ حساس ڈیٹا کو مؤثر طریقے سے ڈکرپٹ کر سکتے ہیں۔

متعلقہ اشاعت:

ایک کامنٹ دیججئے