پی ایچ پی میں اسٹرنگ کو انکرپٹ اور ڈکرپٹ کیسے کریں؟

Py Aych Py My As Rng Kw Ankrp Awr Krp Kys Kry



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

دی خفیہ کاری الگورتھم کو ڈیٹا کی ایک سٹرنگ لینا چاہیے جسے آپ انکرپٹ کرنا چاہتے ہیں اور ڈیٹا کو انکرپٹ کرنے کے لیے منتخب کردہ خفیہ کاری کا طریقہ استعمال کرنا چاہیے۔ الگورتھم کو پھر انکرپٹڈ ڈیٹا کو اس فارمیٹ میں واپس کرنا چاہیے جسے آپ ڈیٹا بیس یا فائل میں اسٹور کر سکتے ہیں۔

کو ڈکرپٹ ڈیٹا، آپ کو ڈیٹا کو ڈکرپٹ کرنے کے لیے وہی انکرپشن طریقہ استعمال کرنا چاہیے جو اسے انکرپٹ کرنے کے لیے استعمال کیا گیا تھا۔ اس کا مطلب ہے کہ آپ کو کلید کو کہیں ذخیرہ کرنے کی ضرورت ہوگی تاکہ آپ اسے بعد میں ڈیٹا کو ڈی کوڈ کرنے کے لیے استعمال کرسکیں۔







پی ایچ پی سٹرنگ کو کیسے انکرپٹ اور ڈکرپٹ کیا جائے؟

پی ایچ پی کی تار ہو سکتی ہے۔ خفیہ کردہ اور ڈکرپٹ کا استعمال کرتے ہوئے openssl_encrpyt() اور openssl_decrypt() طریقے، بالترتیب.



openssl_encrypt() فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو خفیہ کریں۔

کو ایک تار کو خفیہ کریں۔ پی ایچ پی میں استعمال کرتے ہوئے openssl_encrypt() فنکشن، آپ کو سادہ متن کی تار، خفیہ کاری کا طریقہ، اور ایک کلید فراہم کرنے کی ضرورت ہے۔ فنکشن انکرپٹڈ ڈیٹا کو واپس کر دے گا، جسے آپ محفوظ طریقے سے محفوظ یا منتقل کر سکتے ہیں۔



کے لیے نحو openssl_encrypt() طریقہ ہے:





سٹرنگ openssl_encrypt ( تار ڈیٹا , تار $طریقہ , تار $key , $اختیارات = 0 , تار $iv , تار $tag = خالی , تار $ آپ , int $tag_length = 16 )
  • $data: وہ تار یا ڈیٹا جسے آپ انکرپٹ کرنا چاہتے ہیں۔
  • $طریقہ: خفیہ کاری کا طریقہ یا سائفر جسے آپ استعمال کرنا چاہتے ہیں۔ آپ استعمال کر کے تعاون یافتہ سائفر طریقوں کی فہرست حاصل کر سکتے ہیں۔ openssl_get_cipher_methods()
  • $key: خفیہ کاری کی کلید جو ڈیٹا کو خفیہ کرنے کے لیے استعمال کی جائے گی۔ یہ منتخب کردہ سائفر طریقہ کی بنیاد پر، مناسب لمبائی اور بے ترتیب ہونے کا ایک تار ہونا چاہیے۔
  • $اختیارات: ایک اختیاری پیرامیٹر جس میں مخصوص خفیہ کاری کے اختیارات کے لیے اضافی جھنڈے شامل ہو سکتے ہیں۔ آپ کا استعمال کرتے ہوئے جھنڈوں کو جوڑ سکتے ہیں۔ bitwise OR (|) مشترکہ جھنڈوں میں شامل ہیں۔ OPENSSL_RAW_DATA اور OPENSL_ZERO_PADDING .
  • $iv: ابتدائی ویکٹر (iv) خفیہ کاری کے لیے استعمال کیا جاتا ہے؛ یہ ایک بے ترتیب اور منفرد قدر ہونی چاہیے، جو بطور سٹرنگ فراہم کی گئی ہو۔
  • $tag: AEAD (Authenticated Encryption with Associated Data) سائفر موڈز، جیسے GCM (Galois/Counter Mode) یا CCM (CBC-MAC کے ساتھ کاؤنٹر) کے لیے ایک اختیاری پیرامیٹر استعمال کیا جاتا ہے۔ یہ انکرپشن کے دوران پیدا ہونے والے تصدیقی ٹیگ کو محفوظ کرتا ہے۔
  • آپ کا: اضافی تصدیق شدہ ڈیٹا جو AEAD سائفر موڈز کے لیے استعمال کیا جا سکتا ہے۔
  • $tag_length: تصدیقی ٹیگ کی لمبائی۔ GCM وضع کے لیے، ٹیگ کی لمبائی 4 سے 16 بائٹس تک ہوتی ہے۔

مثال کے طور پر:

<؟php
$simple_string = 'Linuxhint میں خوش آمدید \n ' ;
بازگشت 'اصل سٹرنگ:' . $simple_string ;
$ciphering = 'AES-128-CTR' ;
$iv_length = openssl_cipher_iv_length ( $ciphering ) ;
$اختیارات = 0 ;
$encryption_iv = '1234567891011121' ;
$encryption_key = 'لینکس' ;
$encryption = openssl_encrypt ( $simple_string , $ciphering ,
$encryption_key , $اختیارات , $encryption_iv ) ;
بازگشت 'انکرپٹڈ سٹرنگ:' . $encryption . ' \n ' ;
؟>

کوڈ پہلے بنیادی متن کا اعلان کرتا ہے۔ 'Linuxhint میں خوش آمدید' اور اسے دکھانے کے لیے echo کمانڈ استعمال کرتا ہے۔ پھر، یہ استعمال کرنے کے لیے خفیہ کاری الگورتھم کی وضاحت کرتا ہے، AES-128-CTR . یہ بھی استعمال کرتا ہے۔ openssl_cipher_iv_length() کے سائز کا حساب لگانے کے لیے فنکشن ابتدائی ویکٹر (IV) اس سائفر کے لیے ضروری ہے۔



کوڈ خفیہ کاری کا تعین کرتا ہے۔ iv کی قدر '1234567891011121' اور خفیہ کاری کی کلید 'لینکس' . انکرپٹڈ سٹرنگ کو ایکو کمانڈ کا استعمال کرتے ہوئے دکھایا جاتا ہے ایک بار جب انکرپشن مکمل ہو جاتی ہے openssl_encrypt() فنکشن خفیہ کاری کے لیے استعمال کیے جانے والے بے ترتیب ابتدائی ویکٹر کی وجہ سے، حتمی خفیہ کردہ سٹرنگ ہر بار مختلف ہوگی۔

openssl_decrypt() فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو ڈکرپٹ کریں۔

پی ایچ پی میں سٹرنگ کو ڈکرپٹ کرنے کے لیے، آپ استعمال کر سکتے ہیں۔ openssl_decrypt() فنکشن یہ فنکشن انکرپٹڈ ڈیٹا، انکرپشن کا طریقہ، اور کلید کو بطور ان پٹ لیتا ہے اور ڈکرپٹ شدہ سادہ متن کو واپس کرتا ہے۔

کے لیے نحو openssl_decrypt() طریقہ ہے:

سٹرنگ openssl_decrypt ( تار ڈیٹا , تار $طریقہ , تار $key , int $اختیارات = 0 , تار $iv , تار $tag , تار $ آپ )

فنکشن میں دیے گئے دلائل یہ ہیں:

  • $data: خفیہ کردہ سٹرنگ یا ڈیٹا جسے آپ ڈکرپٹ کرنا چاہتے ہیں۔
  • $طریقہ: خفیہ کاری کا طریقہ یا سائفر خفیہ کاری کے دوران استعمال ہوتا ہے۔ آپ استعمال کر کے تعاون یافتہ سائفر طریقوں کی فہرست حاصل کر سکتے ہیں۔ openssl_get_cipher_methods()
  • $key: خفیہ کاری کی کلید جو ڈیٹا کو خفیہ کرنے کے لیے استعمال ہوتی تھی۔ اسے خفیہ کاری کے دوران استعمال ہونے والی کلید سے مماثل ہونا چاہیے۔
  • $اختیارات: ایک اختیاری پیرامیٹر جس میں مخصوص ڈکرپشن اختیارات کے لیے اضافی جھنڈے شامل ہو سکتے ہیں۔ آپ بٹ وائز یا (|) آپریٹر کا استعمال کرتے ہوئے جھنڈوں کو جوڑ سکتے ہیں۔ مشترکہ جھنڈوں میں شامل ہیں۔ OPENSSL_RAW_DATA اور OPENSL_ZERO_PADDING .
  • $iv: دی ابتدائی ویکٹر (IV) خفیہ کاری کے دوران استعمال کیا جاتا ہے. یہ وہی IV ہونا چاہیے جو خفیہ کاری کے دوران استعمال ہوا تھا اور اسے سٹرنگ کے طور پر پاس کیا گیا تھا۔
  • $tag: AEAD (Authenticated Encryption with Associated Data) سائفر موڈز، جیسے GCM (Galois/Counter Mode) یا CCM (CBC-MAC کے ساتھ کاؤنٹر) کے لیے تصدیقی ٹیگ۔ اگر توثیق ناکام ہو جاتی ہے تو openssl_decrypt() FALSE لوٹائے گا۔
  • آپ کا: اضافی تصدیق شدہ ڈیٹا جو AEAD سائفر موڈز کے لیے انکرپشن کے دوران استعمال کیا گیا تھا۔

واپسی کی قیمت: اگر کامیاب ہو، تو یہ ڈکرپٹڈ سٹرنگ واپس کرتا ہے۔ دوسری صورت میں، یہ FALSE لوٹاتا ہے۔

مثال کے طور پر:

<؟php
$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
بازگشت 'انکرپٹڈ سٹرنگ:' . $encrypted_string . ' \n ' ;
$decryption_iv = '1234567891011121' ;
$ciphering = 'AES-128-CTR' ;
$اختیارات = 0 ;
$decryption_key = 'لینکس' ;
$decryption = openssl_decrypt ( $encrypted_string ، $ciphering ،
$decryption_key ، $اختیارات ، $decryption_iv ) ;
بازگشت 'ڈیکرپٹڈ سٹرنگ:' . $decryption ;
؟>

اس کوڈ میں ویکٹر کی لمبائی کا استعمال کرتے ہوئے شمار کیا جاتا ہے۔ openssl_cipher_iv_length() فنکشن، اور وہی انکرپشن iv اور کلیدی پیرامیٹرز کو انکرپشن کے دوران استعمال کیا جاتا ہے۔ سائفرنگ الگورتھم کی تعریف اس طرح کی گئی ہے۔ AES-128-CTR .

پہلے سے خفیہ کردہ اسٹرنگ کو سائفرنگ الگورتھم، انکرپشن کلید، ترتیبات اور IV اقدار کا استعمال کرتے ہوئے ڈکرپٹ کیا جاتا ہے openssl_decrypt() فنکشن نتیجے میں ڈکرپٹڈ ٹیکسٹ ایکو کمانڈ کا استعمال کرتے ہوئے دکھایا جاتا ہے۔

نتیجہ

ویب سائٹس کی تخلیق میں اکثر شامل ہوتا ہے۔ خفیہ کاری اور خفیہ کاری ڈیٹا حساس ڈیٹا کی حفاظت کے لیے انکرپشن کا استعمال کرکے، آپ اپنے صارفین کو شناخت کی چوری، دھوکہ دہی اور دیگر حفاظتی خطرات سے بے نقاب کرنے سے بچ سکتے ہیں۔ پی ایچ پی میں سٹرنگز کو فنکشنز کے ذریعے انکرپٹ اور ڈکرپٹ کیا جا سکتا ہے۔ openssl_encrypt() اور openssl_decrypt() افعال. انکرپشن الگورتھم اور کلید کو احتیاط سے استعمال کرتے ہوئے، آپ اپنی پی ایچ پی ایپلی کیشنز میں حساس ڈیٹا کو سنبھالنے کے لیے ایک مضبوط اور محفوظ نظام بنا سکتے ہیں۔