ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ฟังก์ชันแฮชเป็นฟังก์ชันที่มีบทบาทอย่างมากในการสร้างระบบความปลอดภัยเนื่องจากสามารถแปลงข้อมูลปกติที่กำหนดให้เป็นค่าความยาวคงที่ผิดปกติและอ่านก็ไม่มีทางเข้าใจเลย เราสามารถจินตนาการได้ว่าเป็นเครื่องปั่นในบ้านของเรานั้น  
เมื่อเราใส่ข้อมูลลงในฟังก์ชั่นนี้มันจะส่งออกค่าที่ไม่ปกติหรือไร้ความหมาย ค่าเหล่านี้เรียกว่า"ค่าแฮช(Hash Value)"  ค่าแฮชเป็นเพียงตัวเลข แต่มักเขียนเป็นเลขฐานสิบหก คอมพิวเตอร์จัดการค่าเป็นแบบไบนารี ค่าแฮชยังเป็นข้อมูลและมักถูกจัดการใน binary Hash function

ตัวอย่าง Hash function

 

ฟังก์ชั่นแฮชโดยทั่วไปจะทำการคำนวณบางอย่างในคอมพิวเตอร์ค่าข้อมูลที่ส่งออกมีความยาวคงที่ ความยาวจะแตกต่างกันไปตามฟังก์ชั่นแฮช ค่าไม่แตกต่างกันแม้ว่าจะมีค่ามากหรือน้อยก็ตาม  

คุณสมบัติของฟังก์ชันแฮช (Hash function)

  1. ข้อมูลแต่ละตัวเมื่อผ่านฟังก์ชันแฮชแล้วจะต้องมีค่าไม่เท่ากัน มีลักษณะที่จำเพาะแต่ล่ะข้อมูล
  2. หาค่าแฮชจากข้อมูลควรทำได้ง่ายและรวดเร็ว
  3. เมื่อข้อมูลผ่านฟังก์ชันแฮชแล้วไม่ควรทำย้อนกลับได้
  4. การบวนการแฮชควรมีการกระจายตัวสูง ข้อมูลใดๆที่ผ่านฟังก์ชันแฮชควรมีขนาดเท่ากัน แต่ไม่เหมือนกัน

ทำไมต้องมีฟังก์ชันแฮช?

  1. เพื่อใช้ตรวจสอบว่าข้อมูลมีการเปลี่ยนแปลงหรือไม่
  2. เพื่อใช้เก็บข้อมูลสำหรับเปรียบเทียบ โดยการเปรียบเทียบข้อมูลจะทำได้รวดเร็วขึ้น
  3. ทำให้เป็นภาษาที่มนุษย์อ่านไม่เข้าใจ
  4. หากข้อมูลที่จะใช้เปรียบเทียบมีขนาดใหญ่มาก จะช่วยย่อข้อมูลให้เล็กลงได้มาก แต่ขึ้นอยู่กับวิธีของฟังก์ชันแฮช

ชนิดของฟังก์ชันแฮช

  1. MD2 (128bits) คิดค้นโดย Ronald Rivests
  2. MD4 (128bits) คิดค้นโดย Ronald Rivests
  3. MD5 (128bits) คิดค้นโดย Ronald Rivests
  4. MD6 (0~512 bits) คิดค้นโดย Ronald Rivests Team
  5. SHA0 (160bits) คิดค้นโดย National Security Agency : NSA
  6. SHA1 (160bits) คิดค้นโดย National Security Agency : NSA
  7. SHA2 (SHA-224, SHA-256, SHA-384, SHA-512) คิดค้นโดย National Security Agency : NSA

 การแปลงรหัสแฮชให้เป็นค่าดั้งเดิมนั้นแถบจะเป็นไปไม่ได้ นี่คือความแตกต่างหลักระหว่างการเข้ารหัสเป็นฟังก์ชันแฮช ใน PHP มักใช้ฟังก์ชันแฮ็ชกับรหัสผ่าน เพื่อป้องกันไม่ให้คนอื่นอ่านออก แม้แต่ Admin เองก็ไม่สามารถรู้ได้

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : PHP - Security

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เงื่อนไข การค้นหา คำที่อยากให้มี และ คำที่ไม่อยากให้มี
โดย aninthana ส 21 ก.ย. 2019 6:03 pm บอร์ด PHP Knowledge
0
6
ส 21 ก.ย. 2019 6:03 pm โดย aninthana
ทำยังไง border ทั้งบอร์ดเป็น link ให้เรากดได้ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 4:58 pm บอร์ด HTML CSS
1
10
ส 21 ก.ย. 2019 5:47 pm โดย mindphp
path way เมือกด step ถัดไปstep ที่เคยผ่านมาจะมีแท็ก a เพิ่มขึ้นทำให้ไปปิดตัวอักษร ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 3:30 pm บอร์ด HTML CSS
0
6
ส 21 ก.ย. 2019 3:30 pm โดย jamepiyawat
อยากทราบวิธีที่จะทำให้คำสั่ง css เปลี่ยนไปตามการตั้งค่าสีของ tamplate ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 2:55 pm บอร์ด Joomla Development
2
16
ส 21 ก.ย. 2019 3:19 pm โดย jamepiyawat
Q - อยากทราบวิธีคำนวณค่าสกุลเงินครับ
โดย birdkritsna ส 21 ก.ย. 2019 11:01 am บอร์ด Programming - PHP
11
77
ส 21 ก.ย. 2019 5:15 pm โดย birdkritsna
การ Install ส่วนขยาย
โดย Anonymous ส 21 ก.ย. 2019 11:11 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
12
ส 21 ก.ย. 2019 3:09 pm โดย mindphp
งานประจำวันที่ 21 กันยายน 2562
โดย aninthana ส 21 ก.ย. 2019 10:27 am บอร์ด M092 - อนินธนา บุญยัง
2
12
ส 21 ก.ย. 2019 6:34 pm โดย aninthana
งานประจำวันที่ 21 กันยายน 2562
โดย jirawoot ส 21 ก.ย. 2019 10:18 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
ส 21 ก.ย. 2019 7:07 pm โดย jirawoot
งานประจำวันที่ 21 กันยายน 2562
โดย birdkritsna ส 21 ก.ย. 2019 10:12 am บอร์ด M094 - กฤษณะ จะโรจน์รัมย์
2
14
ส 21 ก.ย. 2019 6:21 pm โดย birdkritsna
งานประจำวันที่ 21 กันยายน 2562
โดย chatee supasand ส 21 ก.ย. 2019 10:10 am บอร์ด MT33 - นายชาตรี สุภาแสน
1
8
ส 21 ก.ย. 2019 7:26 pm โดย chatee supasand
งานประจำวันที่ 21 กันยายน 2562
โดย jamepiyawat ส 21 ก.ย. 2019 10:07 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
2
9
ส 21 ก.ย. 2019 7:36 pm โดย jamepiyawat
การบันทึกบัญชี รับเงินมัดจำในเดือนกับข้ามเดือน บันทึกยังไง แตกต่างกันมั้ยค่ะ
โดย thatsawan ศ 20 ก.ย. 2019 8:08 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
2
16
ส 21 ก.ย. 2019 5:09 pm โดย thatsawan
ทำความรู้จัก Cloud
โดย aninthana ศ 20 ก.ย. 2019 8:01 pm บอร์ด Linux - Web Server
0
9
ศ 20 ก.ย. 2019 8:01 pm โดย aninthana
เปรียบเทียบ smart watch รุ่นต่างๆ จากหลายๆค่าย รุ่นไหนโดน รุ่นไหนดี มารับชมกันได้เลย
โดย chatee supasand ศ 20 ก.ย. 2019 5:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
19
ศ 20 ก.ย. 2019 5:41 pm โดย chatee supasand
วิธีสมัครและใช้งาน api อัตราแลกเปลี่ยนเงินตรา จาก ธนาคารแห่งประเทศไทย ด้วย php
โดย birdkritsna ศ 20 ก.ย. 2019 4:14 pm บอร์ด PHP Knowledge
0
17
ศ 20 ก.ย. 2019 4:14 pm โดย birdkritsna
จะทำ path way เป็นลูกศรชีต้องทำยังไงครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 3:50 pm บอร์ด HTML CSS
0
13
ศ 20 ก.ย. 2019 3:50 pm โดย jamepiyawat
อยากทราบวิธีที่จะทำให้เมือเรากดปุ่มซื้อสินค้าแล้วจะมีหน้า pop เด้งขึ้นมาครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 3:30 pm บอร์ด HTML CSS
0
10
ศ 20 ก.ย. 2019 3:30 pm โดย jamepiyawat
อยากทราบวิธีทำปุ่มกดสลับค่าระหว่าง list box ครับ
โดย birdkritsna ศ 20 ก.ย. 2019 2:59 pm บอร์ด Programming - PHP
7
64
ส 21 ก.ย. 2019 5:41 pm โดย thatsawan
ระดับ User นี้มีข้อจำกัดอะไรบ้างครับ
โดย Patipat ศ 20 ก.ย. 2019 2:45 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
17
ศ 20 ก.ย. 2019 2:50 pm โดย tsukasaz
ทำไมโค้ดของผมแสดงผลชื่อจังหวัดชื่ออำเภอผิดครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 2:20 pm บอร์ด JavaScript & Jquery Ajax
8
38
ศ 20 ก.ย. 2019 3:22 pm โดย jamepiyawat