ในระบบปฏิบัติการหลายระบบ ฟังก์ชันนี้ทำงานแตกต่างกัน ระหว่างการติดตั้ง PHP จะตรวจสอบอัลกอริทึมที่มีอยู่และที่แนะนำ ฟังก์ชันนี้รวมอยู่ใน PHP เวอร์ชัน 4 และใหม่กว่า และยอมรับพารามิเตอร์บังคับหนึ่งตัวและพารามิเตอร์เผื่อเลือกหนึ่งตัว
ไวยากรณ์
ไวยากรณ์อย่างง่ายตามด้วย ห้องใต้ดิน () ฟังก์ชั่นได้รับด้านล่าง:
ห้องใต้ดิน ( $str , $ เกลือ )
ฟังก์ชันยอมรับสองพารามิเตอร์:
- $str: พารามิเตอร์นี้เป็นสตริงที่คุณต้องการเข้ารหัส สตริงนี้อาจถูกตัดทอนระหว่างการสร้างแฮช ซึ่งหมายความว่าจะไม่นำสตริงทั้งหมดมาพิจารณาตามประเภทแฮช
- $ เกลือ: พารามิเตอร์นี้ใช้สำหรับเลือกวิธีการแฮช
ฟังก์ชันนี้จะส่งคืนสตริงที่เข้ารหัส
จะใช้ฟังก์ชัน crypt() ใน PHP ได้อย่างไร?
เดอะ ห้องใต้ดิน () ฟังก์ชันใน PHP สามารถใช้กับอัลกอริทึมแฮชการเข้ารหัสที่แตกต่างกันเพื่อเข้ารหัสสตริง นี่คือตัวอย่างบางส่วนของวิธีการใช้งาน ห้องใต้ดิน () ด้วยอัลกอริธึมการแฮชที่แตกต่างกัน:
- ใช้ CRYPT_STD_DES
- ใช้ CRYPT_EXT_DES
- ใช้ CRYPT_MD5
- ใช้ CRYPT_BLOWFISH
- ใช้ CRYPT_SHA256
- ใช้ CRYPT_SHA512
เรามาอธิบายรายละเอียดวิธีการเหล่านี้กัน
1: การใช้ CRYPT_STD_DES
เดอะ CRYPT_STD_DES เป็นหนึ่งในอัลกอริทึมการแฮชที่สนับสนุนโดย ห้องใต้ดิน () ฟังก์ชันใน PHP ที่ใช้ มาตรฐาน DES (มาตรฐานการเข้ารหัสข้อมูล) อัลกอริทึมสำหรับการเข้ารหัส เมื่อใช้งาน CRYPT_STD_DES คุณต้องระบุค่าเกลือสองอักขระเป็นอาร์กิวเมนต์ที่สองของ ห้องใต้ดิน () การทำงาน. ค่าเกลือระบุรูปแบบคีย์และความซับซ้อนของกระบวนการเข้ารหัส
ตัวอย่างเช่น:
ถ้า ( CRYPT_STD_DES == 1 ) {
เสียงสะท้อน 'มาตรฐาน DES: ' . ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , 'สต' ) . ' \n ' ;
} อื่น {
เสียงสะท้อน 'ไม่รองรับมาตรฐาน DES \n ' ;
}
?>
2: ใช้ CRYPT_EXT_DES
เดอะ CRYPT_EXT_DES เป็นอีกหนึ่งอัลกอริทึมการแฮชที่สนับสนุนโดย ห้องใต้ดิน () ฟังก์ชั่นที่ใช้ Extended DES (มาตรฐานการเข้ารหัสข้อมูล) อัลกอริทึมสำหรับการเข้ารหัส ขยาย DES เป็นส่วนเสริมของอัลกอริทึม DES เดิม ซึ่งให้พื้นที่คีย์ที่ใหญ่ขึ้นและปรับปรุงความปลอดภัย
ใช้ CRYPT_EXT_DES คุณต้องระบุค่าเกลือที่ขึ้นต้นด้วย _J9 ตามด้วยตัวละครเพิ่มเติม
ตัวอย่างเช่น:
ถ้า ( CRYPT_EXT_DES == 1 ) {
เสียงสะท้อน 'ขยาย DES: ' . ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , '_J9..ทุตตะ' ) . ' \n ' ;
} อื่น {
เสียงสะท้อน 'ไม่รองรับ Extended DES \n ' ;
}
?>
3: การใช้ CRYPT_MD5
เดอะ CRYPT_MD5 เป็นหนึ่งในอัลกอริทึมการแฮชที่สนับสนุนโดย ห้องใต้ดิน () ฟังก์ชันใน PHP ที่ใช้ MD5 (อัลกอริทึมการย่อยข้อความ 5 สร้างค่าแฮช 128 บิต (16 ไบต์) ) อัลกอริทึมสำหรับการเข้ารหัส
ใช้ CRYPT_MD5 คุณต้องระบุค่าเกลือที่ขึ้นต้นด้วย $1$ ตามด้วยตัวละครบางตัว
ตัวอย่างเช่น:
ถ้า ( CRYPT_MD5 == 1 ) {
เสียงสะท้อน 'MD5: ' . ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , '$1$พยายาม$' ) . ' \n ' ;
} อื่น {
เสียงสะท้อน 'ไม่สนับสนุน MD5 \n ' ;
}
?>
4: การใช้ CRYPT_BLOWFISH
เดอะ CRYPT_BLOWFISH เป็นอัลกอริธึมการแฮชที่ได้รับการแนะนำอย่างกว้างขวางซึ่งสนับสนุนโดย ห้องใต้ดิน () ฟังก์ชันใน PHP ที่ใช้อัลกอริทึม Blowfish สำหรับการเข้ารหัส ปักเป้าเป็นรหัสบล็อกสมมาตรที่ขึ้นชื่อเรื่องความปลอดภัยสูง ใช้ CRYPT_BLOWFISH คุณต้องระบุค่าเกลือซึ่งเริ่มต้นด้วย $2y$ หรือ $2a$ ตามด้วยพารามิเตอร์ต้นทุนสองหลัก จากนั้นตามด้วยค่าเกลือจริง
ตัวอย่างเช่น:
ถ้า ( CRYPT_BLOWFISH == 1 ) {
เสียงสะท้อน 'ปลาปักเป้า: ' .
ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , '$2y$12$mkstringexforsaltparam' ) .
' \n ' ;
} อื่น {
เสียงสะท้อน “ไม่สนับสนุนปักเป้า \n ' ;
}
?>
5: การใช้ CRYPT_SHA256
อัลกอริทึมการแฮชอื่นที่สนับสนุนโดย ห้องใต้ดิน () ฟังก์ชั่นคือ CRYPT_SHA256 ซึ่งใช้อัลกอริทึม SHA-256 (สร้างค่าแฮช 256 บิต (32 ไบต์)) สำหรับการเข้ารหัส ใช้ CRYPT_SHA256 คุณต้องระบุค่าเกลือซึ่งเริ่มต้นด้วย $5$ ตามด้วยพารามิเตอร์ต้นทุนสองหลัก จากนั้นตามด้วยค่าเกลือจริง
ตัวอย่างเช่น:
ถ้า ( CRYPT_SHA256 == 1 ) {
เสียงสะท้อน 'SHA-256: ' .
ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , '$5$mkstringexforsaltparam$' ) .
' \n ' ;
} อื่น {
เสียงสะท้อน 'ไม่สนับสนุน SHA256 \n ' ;
}
?>
6: การใช้ CRYPT_SHA512
เดอะ CRYPT_SHA512 เป็นอีกหนึ่งอัลกอริธึมการแฮชที่มีประโยชน์ซึ่งสนับสนุนโดย ห้องใต้ดิน () ฟังก์ชันใน PHP ที่ใช้ SHA-512 อัลกอริทึมสำหรับการเข้ารหัส SHA-512 เป็นฟังก์ชันแฮชการเข้ารหัสที่ใช้กันอย่างแพร่หลายซึ่งสร้างค่าแฮช 512 บิต (64 ไบต์) ใช้ CRYPT_SHA512 คุณต้องระบุค่าเกลือซึ่งเริ่มต้นด้วย $6$ ตามด้วยพารามิเตอร์ต้นทุนสองหลัก จากนั้นตามด้วยค่าเกลือจริง
ตัวอย่างเช่น:
ถ้า ( CRYPT_SHA512 == 1 ) {
เสียงสะท้อน 'ชา-512: ' .
ห้องใต้ดิน ( 'ยินดีต้อนรับสู่ลินุกซ์ฮินท์' , '$6$mkstringexforsaltparam$' ) .
' \n ' ;
} อื่น {
เสียงสะท้อน 'ไม่รองรับ SHA-512 \n ' ;
}
?>
บทสรุป
พีเอชพี ห้องใต้ดิน () ฟังก์ชันสามารถเข้ารหัสสตริงที่แฮชและเป็นเทคนิคการเข้ารหัสแบบทิศทางเดียวที่สนับสนุนอัลกอริทึมที่ระบุ เนื่องจากอนุญาตเฉพาะการเข้ารหัสและไม่สามารถถอดรหัสได้ จึงเรียกว่าอัลกอริทึมแบบทิศทางเดียว ฟังก์ชันนี้ยอมรับพารามิเตอร์บังคับหนึ่งตัวและพารามิเตอร์เผื่อเลือกหนึ่งตัว และส่งคืนสตริงที่เข้ารหัส คู่มือนี้ใช้ฟังก์ชันการเข้ารหัส PHP โดยใช้ CRYPT_STD_DES, CRYPT_EXT_DES, CRYPT_MD5, CRYPT_BLOWFISH, CRYPT_SHA256 , และ, CRYPT_SHA512 อัลกอริทึม