ฉันจะใช้SHA256
รหัสผ่าน + เกลือ แต่ฉันไม่รู้ว่าจะต้องใช้เวลานานแค่ไหนVARCHAR
เมื่อตั้งค่าฐานข้อมูล MySQL ความยาวที่ดีคืออะไร?
ฉันจะใช้SHA256
รหัสผ่าน + เกลือ แต่ฉันไม่รู้ว่าจะต้องใช้เวลานานแค่ไหนVARCHAR
เมื่อตั้งค่าฐานข้อมูล MySQL ความยาวที่ดีคืออะไร?
คำตอบ:
sha256 ยาว 256 บิต - ตามชื่อบ่งชี้
เนื่องจาก sha256 ส่งคืนการแทนเลขฐานสิบหก 4 บิตก็เพียงพอที่จะเข้ารหัสอักขระแต่ละตัว (แทน 8 เช่น ASCII) ดังนั้น 256 บิตจะแทน 64 ตัวอักษรฐานสิบหกดังนั้นคุณจึงต้อง a varchar(64)
หรือแม้กระทั่ง a char(64)
เนื่องจากความยาวจะเท่ากันเสมอ ไม่แตกต่างกันเลย
และตัวอย่าง:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
จะให้คุณ:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
เช่นสตริงที่มี 64 ตัวอักษร
varchar(65)
สำหรับผู้นำ!
... เพียงแค่พูด
SELECT length(to_base64(unhex(sha2('say hello to my little friend',256))))
มันคือ 44 เสมอไม่ว่าความยาวของสายอักขระเดิมคืออะไร
ตัวเลือกการเข้ารหัสสำหรับ 256 บิตของ SHA256:
CHAR(44)
รวมถึงอักขระตัวเสริมCHAR(64)
BINARY(32)
=
สามารถปล้นและเพิ่มใหม่
ฉันชอบที่จะใช้ BINARY (32) เพราะมันเป็นวิธีที่ดีที่สุด!
คุณสามารถใส่ตัวเลขฐานสิบหก 32 ตัวจาก (00 ถึง FF)
ดังนั้นไบนารี (32)!
UPDATE...SET hash_column=UNHEX(sha256HexString)
คุณสามารถใช้ SELECT HEX(hash_column) AS hash_column
จากนั้นเมื่อดึงมันคุณ
ทำไมคุณถึงทำให้ VARCHAR ไม่แตกต่างกัน มีความยาว 64 ตัวอักษรซึ่งสามารถกำหนดได้โดยใช้อะไรก็ตามในเครื่องคิดเลข SHA-256ออนไลน์
SHA-*
รหัสผ่านกัญชาโปรดอ่านนี้เป็นครั้งแรก