دروس PHP

PHP الرئيسية مقدمة PHP تثبيت PHP بناء جملة PHP تعليقات PHP متغيرات PHP PHP صدى / طباعة أنواع بيانات PHP سلاسل PHP أرقام PHP PHP الرياضيات ثوابت PHP مشغلي PHP PHP إذا ... آخر ... Elseif مفتاح PHP حلقات PHP وظائف PHP مصفوفات PHP PHP Superglobals PHP RegEx

نماذج PHP

معالجة نموذج PHP التحقق من صحة نموذج PHP نموذج PHP مطلوب نموذج PHP URL / البريد الإلكتروني اكتمل نموذج PHP

PHP متقدم

تاريخ ووقت PHP تضمين PHP معالجة ملفات PHP فتح / قراءة ملف PHP إنشاء / كتابة ملف PHP تحميل ملف PHP ملفات تعريف الارتباط PHP جلسات PHP مرشحات PHP مرشحات PHP متقدم وظائف رد الاتصال PHP PHP JSON استثناءات PHP

PHP OOP

PHP ما هو OOP فئات / كائنات PHP منشئ PHP مدمر PHP معدِّلات الوصول إلى PHP الوراثة PHP ثوابت PHP فئات مجردة PHP واجهات PHP سمات PHP طرق PHP الثابتة خصائص PHP الثابتة مساحات أسماء PHP PHP تكرارات

قاعدة بيانات MySQL

قاعدة بيانات MySQL اتصال MySQL إنشاء قاعدة بيانات MySQL إنشاء جدول MySQL MySQL إدراج البيانات MySQL الحصول على آخر معرف إدراج عدة MySQL تم تجهيز MySQL MySQL حدد البيانات MySQL أين ترتيب MySQL حسب MySQL حذف البيانات تحديث بيانات MySQL بيانات MySQL المحدودة

لغة PHP XML

موزعي PHP XML محلل PHP SimpleXML PHP SimpleXML - احصل على PHP XML Expat PHP XML DOM

PHP - أجاكس

مقدمة أجاكس أجاكس بي إتش بي قاعدة بيانات أجاكس AJAX XML بحث أجاكس لايف استطلاع أجاكس

أمثلة PHP

أمثلة PHP مترجم PHP اختبار PHP تمارين PHP شهادة PHP

مرجع PHP

نظرة عامة على PHP صفيف PHP تقويم PHP تاريخ PHP دليل PHP خطأ PHP استثناء PHP نظام ملفات PHP مرشح PHP PHP FTP PHP JSON كلمات PHP PHP Libxml PHP Mail PHP الرياضيات متفرقات PHP PHP MySQLi شبكة PHP التحكم في إخراج PHP PHP RegEx PHP SimpleXML PHP ستريم سلسلة PHP
خطوط مائلة () إضافات () bin2hex () يقطع() chr () chunk_split () convert_cyr_string () convert_uudecode () convert_uuencode () عدد_رسومات () crc32 () سرداب() صدى صوت() ينفجر() فبرنت () get_html_translation_table () هيبريف () هيبريفك () hex2bin () html_entity_decode () htmlentities () htmlspecialchars_decode () htmlspecialchars () ينفجر داخليا، ينهار للداخل() انضم() lcfirst () ليفينشتاين () localeconv () لتريم () md5() md5_file () ميتافون () money_format () nl_langinfo () nl2br() number_format () كلمات() parse_str () مطبعة() printf () نقلت_طباعة_فكود () نقلت_الرمز_الطباعة () كوتيميتا () rtrim () setlocale () sha1 () sha1_file () مماثل_text () soundex () سبرينتف () sscanf () str_getcsv () str_ireplace () str_pad () str_repeat () str_replace () str_rot13 () str_shuffle () str_split () str_word_count () strcasecmp () strchr () strcmp () نزهة () strcspn () علامات الشريط () خطوط مائلة () خطوط مائلة () كاريكاتير () شرائط () سترلين () strnatcasecmp () strnatcmp () strncasecmp () strncmp () ستربرك () ستربوس () strrchr () ستريف () ستريبوس () ستربوس () strspn () strstr () ستراتوك () strtolower () strtoupper () strtr () substr () substr_compare () substr_count () substr_replace () تقليم() ucfirst () ucwords () vfprintf () vprintf () vsprintf () التفاف الكلمات ()
معالجة متغيرة PHP محلل PHP XML PHP Zip المناطق الزمنية PHP

وظيفة تشفير PHP ()


❮ مرجع سلسلة PHP

التعريف والاستخدام

ترجع الدالة crypt () سلسلة مجزأة باستخدام خوارزميات DES أو Blowfish أو MD5.

تعمل هذه الوظيفة بشكل مختلف في أنظمة التشغيل المختلفة. يتحقق PHP من الخوارزميات المتاحة وما هي الخوارزميات التي يجب استخدامها عند تثبيتها.

معلمة الملح اختيارية. ومع ذلك ، يقوم crypt () بإنشاء كلمة مرور ضعيفة بدون الملح. تأكد من تحديد ملح قوي بدرجة كافية لتحسين الأمان.

هناك بعض الثوابت التي يتم استخدامها مع وظيفة crypt (). يتم تعيين قيمة هذه الثوابت بواسطة PHP عند تثبيتها.

الثوابت:

  • [CRYPT_STD_DES] - تجزئة قياسية قائمة على DES مع حرفين ملح من الأبجدية "./0-9A-Za-z". سيؤدي استخدام أحرف غير صالحة في الملح إلى فشل هذه الوظيفة.
  • [CRYPT_EXT_DES] - تجزئة موسعة قائمة على DES مع تسعة أحرف ملح تتكون من شرطة سفلية متبوعة بـ 4 بايت من عدد التكرار و 4 بايت من الملح. يتم ترميزها كأحرف قابلة للطباعة ، 6 بت لكل حرف ، على الأقل حرفًا مهمًا أولاً. تم ترميز القيم من 0 إلى 63 كـ "./0-9A-Za-z". سيؤدي استخدام أحرف غير صالحة في الملح إلى فشل الوظيفة.
  • [CRYPT_MD5] - تجزئة MD5 مع 12 حرفًا ملحًا يبدأ بـ $ 1
  • [CRYPT_BLOWFISH] - تجزئة السمكة المنتفخة بملح يبدأ من $ 2a $ ، أو $ 2x $ ، أو $ 2y $ ، ومعلمات التكلفة المكونة من رقمين "$" ، و 22 حرفًا من الأبجدية "./0-9A-Za-z" . سيؤدي استخدام أحرف خارج الأبجدية إلى إرجاع هذه الدالة لسلسلة ذات طول صفري. المعلمة "$" هي اللوغاريتم الأساسي 2 لحساب التكرار لمقياس خوارزمية التجزئة الأساسي ، ويجب أن يكون في النطاق 04-31. القيم الموجودة خارج هذا النطاق ستؤدي إلى فشل الوظيفة.
  • [CRYPT_SHA_256] - تجزئة SHA-256 مع ملح 16 حرفًا يبدأ بـ 5 دولارات. إذا بدأت سلسلة الملح بـ "rounds = <N> $" ، يتم استخدام القيمة الرقمية لـ N للإشارة إلى عدد مرات تنفيذ حلقة التجزئة ، تمامًا مثل معلمة التكلفة على Blowfish. العدد الافتراضي للجولات هو 5000 ، وهناك حد أدنى من 1000 و 999،999،999 كحد أقصى. سيتم اقتطاع أي تحديد لـ N خارج هذا النطاق إلى أقرب حد.
  • [CRYPT_SHA_512] - تجزئة SHA-512 مع ملح 16 حرفًا يبدأ بـ 6 دولارات. إذا بدأت سلسلة الملح بـ "rounds = <N> $" ، يتم استخدام القيمة الرقمية لـ N للإشارة إلى عدد مرات تنفيذ حلقة التجزئة ، تمامًا مثل معلمة التكلفة على Blowfish. العدد الافتراضي للجولات هو 5000 ، وهناك حد أدنى من 1000 و 999،999،999 كحد أقصى. سيتم اقتطاع أي تحديد لـ N خارج هذا النطاق إلى أقرب حد.

في الأنظمة التي تدعم فيها هذه الوظيفة خوارزميات متعددة ، يتم تعيين الثوابت أعلاه على "1" إذا كانت مدعومة و "0" بخلاف ذلك.

ملاحظة: لا توجد وظيفة فك التشفير. تستخدم الدالة crypt () خوارزمية أحادية الاتجاه.


بناء الجملة

crypt(str,salt)

قيمه المعامل

Parameter Description
str Required. Specifies the string to be hashed
salt Optional. A salt string to base the hashing on


تفاصيل تقنية

قيمة الإرجاع: تُرجع السلسلة المشفرة أو السلسلة التي أقصر من 13 حرفًا ويضمن اختلافها عن السلسلة عند الفشل
إصدار PHP: 4+
التغيير: PHP 5.6.0 - يعرض تحذير أمان E_NOTICE إذا تم حذف الملح .
PHP 5.3.7 - تمت إضافة وضعي Blowfish $ 2x $ و $ 2y $.
PHP 5.3.2 - تمت إضافة SHA-256 و SHA-512. تم إصلاح سلوك السمكة المنتفخة في الجولات غير الصالحة بإرجاع سلسلة "فشل" ("* 0" أو "* 1") ، بدلاً من الرجوع إلى DES.
PHP 5.3.0 - PHP تحتوي الآن على تطبيقها الخاص لتشفير MD5 و Standard DES و Extended DES وخوارزميات Blowfish وستستخدم ذلك إذا كان النظام يفتقر إلى الدعم لواحدة أو أكثر من الخوارزميات.

مزيد من الأمثلة

مثال

في هذا المثال سنختبر الخوارزميات المختلفة:

<?php
// 2 character salt
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."\n<br>";
}
else
{
echo "Standard DES not supported.\n<br>";
}

// 4 character salt
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."\n<br>";
}
else
{
echo "Extended DES not supported.\n<br>";
}

// 12 character salt starting with $1$
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n<br>";
}
else
{
echo "MD5 not supported.\n<br>";
}

// Salt starting with $2a$. The two digit cost parameter: 09. 22 characters
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."\n<br>";
}
else
{
echo "Blowfish DES not supported.\n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."\n<br>"; }
else
{
echo "SHA-256 not supported.\n<br>";
}

// 16 character salt starting with $6$. The default number of rounds is 5000.
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

يمكن أن يكون إخراج الكود أعلاه (حسب نظام التشغيل):

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.


❮ مرجع سلسلة PHP