كيفية تشفير وفك تشفير السلسلة في PHP؟

Kyfyt Tshfyr Wfk Tshfyr Alslslt Fy Php



التشفير هي عملية تحويل البيانات إلى رمز سري أو تنسيق غير مفهوم لأي شخص ليس لديه مفتاح فك تشفيرها. فك التشفير هو الإجراء الخاص بأخذ هذه المعلومات وإعادتها إلى تنسيقها الأصلي المقروء. في PHP ، التشفير و فك التشفير يمكن استخدامها لحماية البيانات الحساسة ، مثل كلمات المرور ومعلومات بطاقة الائتمان والبيانات الشخصية الأخرى.

ال التشفير يجب أن تأخذ الخوارزمية سلسلة من البيانات التي تريد تشفيرها وأن تستخدم طريقة التشفير المختارة لتشفير البيانات. يجب أن تقوم الخوارزمية بعد ذلك بإرجاع البيانات المشفرة بتنسيق يمكنك تخزينه في قاعدة بيانات أو ملف.

ل فك تشفير البيانات ، يجب عليك استخدام نفس طريقة التشفير لفك تشفير البيانات التي تم استخدامها لتشفيرها. هذا يعني أنك ستحتاج إلى تخزين المفتاح في مكان ما بحيث يمكنك استخدامه لفك تشفير البيانات لاحقًا.







كيفية تشفير سلسلة PHP وفك تشفيرها؟

يمكن أن تكون سلسلة PHP مشفر و فك باستخدام opensl_encrpyt () و opensl_decrypt () الطرق ، على التوالي.



تشفير سلسلة باستخدام وظيفة openssl_encrypt ()

ل تشفير سلسلة في PHP باستخدام امتداد opensl_encrypt () وظيفة ، تحتاج إلى توفير سلسلة نص عادي وطريقة التشفير ومفتاح. ستعيد الوظيفة البيانات المشفرة ، والتي يمكنك بعد ذلك تخزينها أو نقلها بأمان.



بناء الجملة لـ opensl_encrypt () الطريقة هي:





سلسلة opensl_encrypt ( خيط بيانات دولار و خيط طريقة $ و خيط مفتاح $ و خيارات دولار = 0 و خيط الرابع دولار و خيط علامة $ = باطل و خيط $ أنت و int $ tag_length = 16 )
  • بيانات دولار: السلسلة أو البيانات التي تريد تشفيرها.
  • طريقة $: طريقة التشفير أو التشفير الذي ترغب في استخدامه. يمكنك الحصول على قائمة بأساليب التشفير المدعومة باستخدام opensl_get_cipher_methods ()
  • مفتاح $: مفتاح التشفير الذي سيتم استخدامه لتشفير البيانات. يجب أن تكون سلسلة ذات طول مناسب وعشوائية ، بناءً على طريقة التشفير المختارة.
  • خيارات $: معلمة اختيارية يمكن أن تتضمن علامات إضافية لخيارات تشفير محددة. يمكنك الجمع بين الأعلام باستخدام أحادي المعامل OR (|) تشمل العلامات المشتركة OPENSSL_RAW_DATA و OPENSSL_ZERO_PADDING .
  • الرابع دولار: متجه التهيئة (4) المستخدم للتشفير ؛ يجب أن تكون قيمة عشوائية وفريدة من نوعها ، على شكل سلسلة.
  • علامة $: معلمة اختيارية مستخدمة لأوضاع التشفير AEAD (التشفير المصدق مع البيانات المرتبطة) ، مثل GCM (Galois / Counter Mode) أو CCM (العداد مع CBC-MAC). يخزن علامة المصادقة التي تم إنشاؤها أثناء التشفير.
  • لك: بيانات مصادقة إضافية يمكن استخدامها في أوضاع تشفير AEAD.
  • $ tag_length: طول علامة المصادقة. بالنسبة لوضع GCM ، يتراوح طول العلامة من 4 إلى 16 بايت.

على سبيل المثال:

<؟ php
$ simple_string = 'مرحبًا بك في Linuxhint ' ؛
صدى صوت 'السلسلة الأصلية:' . $ simple_string ؛
$ التشفير = 'AES-128-CTR' ؛
iv_length دولار = يفتحsl_cipher_iv_length ( $ التشفير ) ؛
خيارات دولار = 0 ؛
تشفير $ = '1234567891011121' ؛
$ encryption_key = 'Linux' ؛
تشفير $ = opensl_encrypt ( $ simple_string و $ التشفير و
$ encryption_key و خيارات دولار و تشفير $ ) ؛
صدى صوت 'سلسلة مشفرة:' . تشفير $ . ' ' ؛
؟>

يعلن الرمز أولاً عن النص الأساسي 'مرحبًا بك في Linuxhint' ويستخدم الأمر echo لإظهاره. ثم تحدد خوارزمية التشفير المراد استخدامها ، AES-128-CTR . كما أنه يستخدم ملف opensl_cipher_iv_length () وظيفة لحساب حجم ناقل التهيئة (IV) اللازمة لهذا التشفير.



يحدد الكود التشفير رابعا قيمة ل '1234567891011121' ومفتاح التشفير لـ 'Linux' . ثم يتم عرض السلسلة المشفرة باستخدام الأمر echo بمجرد اكتمال التشفير باستخدام opensl_encrypt () وظيفة. نظرًا لمتجه التهيئة العشوائية المستخدم للتشفير ، ستختلف السلسلة المشفرة النهائية في كل مرة.

فك تشفير سلسلة باستخدام وظيفة openssl_decrypt ()

لفك تشفير سلسلة في PHP ، يمكنك استخدام الامتداد opensl_decrypt () وظيفة. تأخذ هذه الوظيفة البيانات المشفرة وطريقة التشفير والمفتاح كمدخلات وتعيد النص العادي الذي تم فك تشفيره.

بناء الجملة لـ opensl_decrypt () الطريقة هي:

سلسلة openssl_decrypt ( خيط بيانات دولار و خيط طريقة $ و خيط مفتاح $ و int خيارات دولار = 0 و خيط الرابع دولار و خيط علامة $ و خيط $ أنت )

الوسيطات التي تم تمريرها إلى الوظيفة هي:

  • بيانات دولار: السلسلة أو البيانات المشفرة التي تريد فك تشفيرها.
  • طريقة $: طريقة التشفير أو التشفير المستخدم أثناء التشفير. يمكنك الحصول على قائمة بأساليب التشفير المدعومة باستخدام opensl_get_cipher_methods ()
  • مفتاح $: مفتاح التشفير الذي تم استخدامه لتشفير البيانات. يجب أن يتطابق مع المفتاح المستخدم أثناء التشفير.
  • خيارات $: معلمة اختيارية يمكن أن تتضمن علامات إضافية لخيارات محددة لفك التشفير. يمكنك الجمع بين الأعلام باستخدام عامل تشغيل أحادي المعامل OR (|). تشمل العلامات المشتركة OPENSSL_RAW_DATA و OPENSSL_ZERO_PADDING .
  • الرابع دولار: ال ناقل التهيئة (IV) تستخدم أثناء التشفير. يجب أن يكون نفس IV الذي تم استخدامه أثناء التشفير وتمريره كسلسلة.
  • علامة $: علامة المصادقة لأوضاع التشفير AEAD (التشفير المصدق مع البيانات المرتبطة) ، مثل GCM (Galois / Counter Mode) أو CCM (العداد مع CBC-MAC). إذا فشلت المصادقة ، فإن openssl_decrypt () سيعود FALSE.
  • لك: بيانات مصادقة إضافية تم استخدامها أثناء التشفير لأوضاع تشفير AEAD.

قيمة الإرجاع: في حالة نجاحها ، تقوم بإرجاع السلسلة التي تم فك تشفيرها ؛ وإلا ، تقوم بإرجاع FALSE.

على سبيل المثال:

<؟ php
$ encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ؛
صدى صوت 'سلسلة مشفرة:' . $ encrypted_string . ' ' ؛
فك التشفير دولار = '1234567891011121' ؛
$ التشفير = 'AES-128-CTR' ؛
خيارات دولار = 0 ؛
مفتاح فك التشفير $ = 'Linux' ؛
فك التشفير = opensl_decrypt ( $ encrypted_string و $ التشفير و
مفتاح فك التشفير $ و خيارات دولار و فك التشفير دولار ) ؛
صدى صوت 'سلسلة مفككة:' . فك التشفير ؛
؟>

يتم حساب طول المتجه في هذا الرمز باستخدام opensl_cipher_iv_length () وظيفة ، ويتم استخدام نفس التشفير الرابع والمعلمات الرئيسية أثناء التشفير. يتم تعريف خوارزمية التشفير على أنها AES-128-CTR .

يتم فك تشفير السلسلة المشفرة مسبقًا باستخدام خوارزمية التشفير ومفتاح التشفير والإعدادات والقيم IV بواسطة opensl_decrypt () وظيفة. ثم يتم عرض النص الناتج الذي تم فك تشفيره باستخدام الأمر echo.

خاتمة

غالبًا ما يتضمن إنشاء مواقع الويب التشفير وفك التشفير بيانات. باستخدام التشفير لحماية البيانات الحساسة ، يمكنك تجنب تعريض المستخدمين لسرقة الهوية والاحتيال والتهديدات الأمنية الأخرى. يمكن تشفير النصوص في PHP وفك تشفيرها بواسطة الوظائف opensl_encrypt () و opensl_decrypt () المهام. من خلال الاستخدام الدقيق لخوارزمية التشفير والمفتاح ، يمكنك إنشاء نظام قوي وآمن للتعامل مع البيانات الحساسة في تطبيقات PHP الخاصة بك.