ล่าสุดการพัฒนาเว็บบทเรียน
×

PHP เกี่ยวกับการสอน

PHP บ้าน PHP แนะนำ PHP ติดตั้ง PHP วากยสัมพันธ์ PHP ตัวแปร PHP Echo / พิมพ์ 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 รับ ID เข้าครั้งสุดท้าย MySQL ใส่หลาย MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX แนะนำ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาสด AJAX RSS Reader 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-based กับเกลือเก้าตัวอักษรประกอบด้วยขีดตามด้วย 4 ไบต์ของการนับซ้ำและ 4 ไบต์ของเกลือ เหล่านี้จะถูกเข้ารหัสเป็นตัวอักษรพิมพ์, 6 บิตต่อตัวละครตัวละครที่สำคัญไม่น้อยกว่าครั้งแรก ค่า 0-63 ที่มีการเข้ารหัสเป็น "./0-9A-Za-z" การใช้ตัวอักษรที่ไม่ถูกต้องในเกลือจะทำให้เกิดการทำงานที่จะล้มเหลว
  • [CRYPT_MD5] - MD5 hashing ด้วยเกลือ 12 ตัวอักษรที่ขึ้นต้นด้วย $ 1 $
  • [CRYPT_BLOWFISH] - คร่ำเครียดปักเป้ากับเกลือที่เริ่มต้นด้วย $ 2a $, $ 2x $ หรือ $ $ 2y สองพารามิเตอร์ค่าใช้จ่ายหลัก "$" , และ 22 ตัวอักษรจากตัวอักษร "./0-9A-Za-z" . การใช้อักขระด้านนอกของตัวอักษรจะทำให้ฟังก์ชั่นนี้เพื่อกลับสตริงความยาวเป็นศูนย์ "$" พารามิเตอร์เป็นฐาน-2 ลอการิทึมของการนับซ้ำสำหรับต้นแบบปักเป้า-ทุบ algorithmeter hashing และต้องอยู่ในช่วง 04-31 ค่านอกช่วงนี้จะทำให้เกิดการทำงานที่จะล้มเหลว
  • [CRYPT_SHA_256] - กัญชา SHA-256 ด้วยเกลือ 16 ตัวอักษรที่ขึ้นต้นด้วย $ 5 $ ถ้าสตริงเกลือเริ่มต้นด้วย "rounds=<N>$" , ค่าตัวเลขของ N จะใช้ในการระบุจำนวนครั้งที่ห่วงคร่ำเครียดควรจะดำเนินการเหมือนพารามิเตอร์ค่าใช้จ่ายในปักเป้า หมายเลขเริ่มต้นของรอบ 5000 มีขั้นต่ำ 1000 และไม่เกิน 999,999,999 ตัวเลือกใด ๆ ของ N นอกช่วงนี้จะถูกตัดออกไปขีด จำกัด ที่ใกล้ที่สุด
  • [CRYPT_SHA_512] - กัญชา SHA-512 ด้วยเกลือ 16 ตัวละครที่เริ่มต้นด้วยราคา $ 6 $ ถ้าสตริงเกลือเริ่มต้นด้วย "rounds=<N>$" , ค่าตัวเลขของ N จะใช้ในการระบุจำนวนครั้งที่ห่วงคร่ำเครียดควรจะดำเนินการเหมือนพารามิเตอร์ค่าใช้จ่ายในปักเป้า หมายเลขเริ่มต้นของรอบ 5000 มีขั้นต่ำ 1000 และไม่เกิน 999,999,999 ตัวเลือกใด ๆ ของ N นอกช่วงนี้จะถูกตัดออกไปขีด จำกัด ที่ใกล้ที่สุด

ในระบบที่ฟังก์ชั่นนี้รองรับขั้นตอนวิธีการหลายค่าคงที่ดังกล่าวข้างต้นมีการกำหนดให้ "1" ถ้าได้รับการสนับสนุนและ "0" เป็นอย่างอื่น

Note: ไม่มีฟังก์ชั่นการถอดรหัสคือ crypt() ฟังก์ชั่นใช้วิธีทางเดียว


วากยสัมพันธ์

crypt( str,salt )

พารามิเตอร์ ลักษณะ
str จำเป็นต้องใช้ ระบุสตริงที่จะถกกัน
salt ไม่จำเป็น. สตริงเกลือไปยังฐาน hashing บน

รายละเอียดทางเทคนิค

กลับค่า: ส่งกลับสตริงเข้ารหัสหรือสตริงที่สั้นกว่า 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 สตริงอ้างอิง