اذهب إلى المحتوى
  • 0

كيفية عمل تشفير في php

علي الكاسر

السؤال

أريد داله للتشفير وفك التشفير وهل يمكن اذا شفرت نص واخذه شخص ما وفك الشفره بنفس الطريقه هل سوف يحصل على فك شفره صحيح

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

في حالتك تحتاج لتشفير بسيط حيث تكون مكتبة التشفير من ضمن PHP حيث استخدم الدالة:

str_rot13 حيث يمكن إدخال النص و عكسه فيها و سيتم التبديل بينهما

<?php

echo str_rot13("Hello World"); // -> Uryyb Jbeyq
echo "<br>";
echo str_rot13("Uryyb Jbeyq"); // -> Hello World

?>

الشخص الذي لديه النص المشفر في حال تطبيقه للدالة سيتم فك التشفير بشكل صحيح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

في PHP ، يمكن تشفير نص ما وفك تشفيره باستخدام أحد امتدادات التشفير التي تسمى OpenSSL للتشفير وفك التشفير.

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

<?php

string openssl_encrypt( string $data, string $method, string $key,
                        $options = 0, string $iv, string $tag= NULL,
                        string $aad, int $tag_length = 16  )

عوامل الدالة الوظيفية  ()openssl_encrypt

  • data$: تحتوي على السلسلة أو البيانات التي يجب تشفيرها.
  • method$: تم اعتماد طريقة التشفير باستخدام وظيفة ()openssl_get_cipher_methods.
  • key$: يحتوي على مفتاح التشفير.
  • options$: يحتوي على فصل أحادي للعلامتين OPENSSL_RAW_DATA و OPENSSL_ZERO_PADDING.
  • iv$: يحتوي على متجه التهيئة .
  • $tag : يحمل علامة المصادقة التي يتم تمريرها من خلال المرجع عند استخدام وضع تشفير AEAD (GCM أو CCM).
  • $ aad: يحتوي على بيانات المصادقة الإضافية.
  • $ tag_length: وهي تحمل طول علامة المصادقة. يتراوح طول علامة المصادقة بين 4 إلى 16 في وضع GCM

تقوم الدالة بإرجاع السلسلة المشفرة عند النجاح أو FALSE عند الفشل.

مثال 

<?php

// قم بتخزين نص في المتغير الذي
// تحتاج إلى أن تكون مشفرة
$simple_string = "Welcome to hsoub academy\n";

// اعرض  النص الأصلي
echo "Original String: " . $simple_string;

// تخزين طريقة التشفير
$ciphering = "AES-128-CTR";

//   OpenSSl  استخدم طريقة تشفير 
$iv_length = openssl_cipher_iv_length($ciphering);
$options = 0;

// ناقل تهيئة غير فارغ للتشفير
//  يمكنك إختيار أي مفتاح تريد
$encryption_iv = '1234567891011121';

// قم بتخزين مفتاح التشفير
$encryption_key = "1234azoe567890apz34p";

// استخدم وظيفة openssl_encrypt () لتشفير البيانات
$encryption = openssl_encrypt($simple_string, $ciphering,
			$encryption_key, $options, $encryption_iv);

// اعرض النص المشفر
echo "Encrypted String: " . $encryption . "\n";

//ناقل تهيئة غير فارغ لفك التشفير
$decryption_iv = '1234567891011121';

// قم بتخزين مفتاح لفك التشفير
// يجب إستعمال نفس المفتاح لفك التشفير
$decryption_key = "1234azoe567890apz34p";

//   openssl_decrypt   لفك تشفير البيانات  نستخدم
$decryption=openssl_decrypt ($encryption, $ciphering,
		$decryption_key, $options, $decryption_iv);

//اعرض النص التي تم فك تشفيره 
echo "Decrypted String: " . $decryption;

?>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك فعل ذلك عبر تشفير النص باستخدام أكثر من دالة مثل md5 و sha1 ويمكنك ذلك بهذا الشكل 

<?php
$string = "hsoub"; 
echo md5(md5(sha1($string)));
?>

 

a105d279506e2b29e7ed66e00818ab6c

فتكون نتيجة هذه الدوال نص مشفر بأكثر من دالة مما يصعب فك تشفيره.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...