ประเภทข้อมูลรหัสผ่านที่แฮชขึ้นอยู่กับอัลกอริธึมการแฮชที่เราใช้ อัลกอริทึมการแฮชไม่ได้ขึ้นอยู่กับขนาดอินพุตเนื่องจากให้ผลลัพธ์ที่มีความยาวเท่ากัน มันให้ผลลัพธ์ในชุดของเลขฐานสิบหก และเราสามารถลดเลขฐานสิบหกลงครึ่งหนึ่งด้วยความช่วยเหลือของฟังก์ชัน UNHEX()
มีอัลกอริธึมและประเภทข้อมูลที่หลากหลายสำหรับเก็บค่า
-
MD5 - สามารถใช้ char(32) หรือ BINARY(16) ได้
-
SHA-1 - สามารถใช้ชนิดข้อมูล char(40) หรือ BINARY(20)
ตัวอย่าง MD5
ต่อไปนี้เป็นตัวอย่าง −
mysql> select MD5('This is a hash password');
นี่คือผลลัพธ์
+------------------------------------------------+| MD5('นี่คือรหัสผ่านที่แฮช') |+------------------------------------------------+| e9d4c42db40abbb4724a0047f7e91e67 |+ ---------------------------------- +1 แถวในชุด (0.03 วินาที)
เพื่อทราบความยาวของรหัสผ่านที่แฮช
mysql> SELECT CHARACTER_LENGTH(MD5('This is a hash password'));+----------------------------- ----------------------------------+| CHARACTER_LENGTH(MD5('นี่คือรหัสผ่านที่แฮช')) |+----------------------------------- ------------------|| 32 |+---------------------------------------------------------- -----+1 แถวในชุด (0.04 วินาที)
ตัวอย่างของ SHA-1
mysql> เลือก SHA1('นี่คือรหัสผ่านที่แฮช');
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+------------------------------------------+| SHA1('นี่คือรหัสผ่านที่แฮช') |+-------------------------------------- ----+| 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 |+------------------------------------------ +1 แถวในชุด (0.00 วินาที)เราสามารถทราบความยาวได้ด้วยฟังก์ชัน character_length()
mysql> SELECT CHARACTER_LENGTH(SHA1('This is a hash password'));
ต่อไปนี้เป็นผลลัพธ์
<ก่อน>+--------------------------------------------- --------+| CHARACTER_LENGTH(SHA1('นี่คือรหัสผ่านที่แฮช')) |+----------------------------------- -------------------+| 40 |+---------------------------------------------------- ------+1 แถวในชุด (0.00 วินาที)