أحدث البرامج التعليمية وتطوير الشبكة
×

PHP البرنامج التعليمي

PHP الصفحة الرئيسية PHP مقدمة PHP تثبيت PHP بناء الجملة PHP المتغيرات PHP صدى / طباعة PHP أنواع البيانات PHP سلاسل PHP الثوابت PHP مشغلي PHP If...Else...Elseif PHP Switch PHP في حين حلقات PHP لحلقات PHP وظائف PHP المصفوفات PHP فرز المصفوفات PHP Superglobals

PHP معالجة

PHP شكل معالجة PHP شكل التحقق من صحة PHP شكل مطلوب PHP شكل URL/E-mail PHP شكل كامل

PHP متقدم

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

MySQL Database

MySQL قاعدة البيانات MySQL صلة MySQL Create DB MySQL Create الطاولة MySQL Insert Data MySQL الحصول على معرف آخر MySQL إدراج متعددة MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML موزعي PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX مقدمة AJAX PHP AJAX قاعدة البيانات AJAX XML AJAX بحث حي AJAX قارئ آر إس إس AJAX صندوق الاقتراع

PHP Examples

PHP أمثلة PHP اختبار قصير PHP شهادة

PHP مرجع

PHP مجموعة PHP تقويم PHP تاريخ PHP دليل PHP خطأ PHP نظام الملفات PHP فلتر PHP FTP PHP HTTP PHP Libxml PHP بريد PHP الرياضيات PHP متفرقات PHP MySQLi PHP SimpleXML PHP خيط PHP XML PHP Zip PHP المناطق الزمنية

 

PHP crypt() Function


<PHP سلسلة المرجعي

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

و crypt() الدالة بإرجاع سلسلة تجزئته باستخدام خوارزميات DES، السمكة المنتفخة، أو MD5.

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

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

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

الثوابت:

  • [CRYPT_STD_DES] - قياسي التجزئة DES-based مع اثنين من الملح حرف من الأبجدية "./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 من عدد التكرار لالكامن وراء ضرب السمكة المنتفخة algorithmeter تجزئة ويجب أن تكون في نطاق 04-31. سوف القيم خارج هذا النطاق يؤدي وظيفة إلى فشل.
  • [CRYPT_SHA_256] - SHA-256 التجزئة مع الملح 16 حرفا تبدأ بحرف $ 5 $. إذا بدأت سلسلة الملح مع "rounds=<N>$" ، يتم استخدام قيمة رقمية من N للإشارة إلى عدد المرات التي يجب أن تنفذ حلقة التجزئة، مثل الكثير من المعلمة التكلفة على السمكة المنتفخة. العدد الافتراضي من جولات 5000، وهناك ما لا يقل عن 1000 وبحد أقصى 999999999. سيتم اقتطاع أي اختيار N خارج هذا النطاق إلى أقرب حد.
  • [CRYPT_SHA_512] - SHA-512 التجزئة مع الملح 16 حرفا تبدأ بحرف $ 6 $. إذا بدأت سلسلة الملح مع "rounds=<N>$" ، يتم استخدام قيمة رقمية من N للإشارة إلى عدد المرات التي يجب أن تنفذ حلقة التجزئة، مثل الكثير من المعلمة التكلفة على السمكة المنتفخة. العدد الافتراضي من جولات 5000، وهناك ما لا يقل عن 1000 وبحد أقصى 999999999. سيتم اقتطاع أي اختيار N خارج هذا النطاق إلى أقرب حد.

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

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


بناء الجملة

crypt( str,salt )

معامل وصف
str مطلوب. تحدد سلسلة ليتم تجزئته
salt اختياري. سلسلة الملح إلى إسناد تجزئة على

تفاصيل تقنية

قيمة الإرجاع: إرجاع سلسلة المشفرة أو سلسلة أقصر من 13 حرفا ومكفول للتختلف من الملح على الفشل
صفحة PHP: 4+
التغيير: أضيفت $ 2X $ و $ 2Y وسائط $ السمكة المنتفخة في PHP 5.3.7 للتعامل مع الهجمات الكبيرة بت المحتملة.

أضيفت الثوابت SHA-256 و SHA-512 في PHP 5.3.2.

اعتبارا من PHP 5.3.2، سلوك السمكة المنتفخة على جولات غير صالحة إرجاع "failure" سلسلة ("*0" or "*1") ، بدلا من أن يتراجع إلى DES.

اعتبارا من PHP 5.3.0، يحتوي PHP تنفيذه الخاصة للسرداب MD5، ستاندرد DES، DES الموسعة وخوارزميات السمكة المنتفخة، وسوف تستخدم أنه إذا كان النظام يفتقر إلى الدعم لواحد أو أكثر من الخوارزميات.

مثال

مثال 1

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

<?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 $5$. 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.";
}
?>

الناتج من التعليمات البرمجية أعلاه يمكن أن يكون (depending on the operating system) :

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 سلسلة المرجعي