เครื่องมือสร้าง SHA-512/256

5 จาก 2 การให้คะแนน

เครื่องมือสร้าง SHA-512/256 เป็นเครื่องมือฟรีสำหรับสร้างแฮช SHA-512/256 จากข้อความที่ป้อน

SHA-512/256 คืออะไร?

SHA-512/256 เป็นอัลกอริทึมแฮชสำหรับการเข้ารหัสที่สร้างลายนิ้วมือขนาดคงที่ 256 บิตจากข้อมูลที่ระบุ อัลกอริทึมนี้ทำงานทางเดียว กล่าวคือ ข้อมูลเดียวกันจะให้ค่าไดเจสต์ 256 บิตเหมือนเดิม ส่วนการเปลี่ยนข้อมูลแม้เพียงเล็กน้อยก็มักทำให้ผลลัพธ์แตกต่างไปอย่างมาก ฟังก์ชันแฮช SHA-512/256 ไม่ใช้คีย์และไม่มีขั้นตอนการถอดรหัส

SHA-512/256 อยู่ในตระกูล SHA-2 ซึ่งออกแบบโดยสำนักงานความมั่นคงแห่งชาติสหรัฐฯ และได้รับการกำหนดเป็นมาตรฐานครั้งแรกโดย NIST ในปี 2002 ส่วนตัวแปร SHA-512/256 ถูกเพิ่มเข้าใน FIPS 180-4 เมื่อปี 2012 อัลกอริทึมนี้ใช้โครงสร้างภายในแบบ 64 บิตของ SHA-512 แต่มีค่าเริ่มต้นเฉพาะของตัวเอง แล้วจึงส่งคืนไดเจสต์ 256 บิต ดังนั้นจึงไม่ใช่แค่การตัด SHA-512 ให้เหลือ 256 บิต

ไดเจสต์มีขนาด 32 ไบต์ และมักเขียนเป็นเลขฐานสิบหก 64 อักขระ SHA-512/256 ยังเหมาะสำหรับการทำแฮชเพื่อการเข้ารหัส โดยปัจจุบันยังไม่พบวิธีโจมตีแบบ collision หรือ preimage ที่ใช้ได้จริง คาดว่าความต้านทานต่อ collision อยู่ที่ประมาณ 128 บิต ส่วนความต้านทานต่อ preimage อยู่ที่ประมาณ 256 บิต

สร้างแฮช SHA-512/256 อย่างไร?

ป้อนข้อความที่ต้องการทำแฮชให้ตรงทุกอักขระ แล้วใช้ค่าที่แสดงในช่องผลลัพธ์ แฮช SHA-512/256 ระบบจะคำนวณบนเซิร์ฟเวอร์ ข้อมูลที่ป้อนจะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และไม่มีการจัดเก็บไว้

คัดลอกไดเจสต์ให้ครบทั้ง 64 อักขระ อย่าคัดลอกเฉพาะบางส่วน เว้นแต่ข้อกำหนดจะระบุให้ตัดทอนอย่างชัดเจน ตัวอย่างเช่น เมื่อทำแฮชข้อความ invoice-1042 จะได้ค่า 256 บิตที่แสดงเป็นเลขฐานสิบหก 64 อักขระ แต่หากทำแฮช Invoice-1042 จะได้ค่าต่างออกไป เพราะตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือเป็นส่วนหนึ่งของข้อมูลที่ป้อน

ตรวจสอบข้อความที่ป้อนในเครื่องมือสร้าง SHA-512/256 ให้ละเอียดก่อนนำผลลัพธ์ไปใช้ รายการต่อไปนี้ล้วนเป็นลำดับไบต์ที่ต่างกัน จึงให้ค่าแฮชไม่เหมือนกัน:

  • report
  • Report
  • report ที่มีช่องว่างต่อท้าย
  • report. ที่มีเครื่องหมายวรรคตอน
  • report ที่ตามด้วยการขึ้นบรรทัดใหม่ซึ่งมองไม่เห็น

ถอดรหัสหรือย้อนกลับ SHA-512/256 ได้ไหม?

ไม่ได้ ไดเจสต์ SHA-512/256 ไม่สามารถถอดรหัสได้ เพราะการทำแฮชไม่ใช่การเข้ารหัส ไดเจสต์ไม่มีสำเนาของข้อความต้นฉบับที่กู้คืนได้ และไม่มีคีย์สำหรับย้อนกระบวนการคำนวณ

อย่างไรก็ตาม ผู้โจมตียังสามารถนำข้อมูลที่คาดว่าอาจเป็นต้นฉบับมาทำแฮชด้วย SHA-512/256 แล้วเปรียบเทียบผลลัพธ์ได้ ข้อความที่สั้น ใช้กันทั่วไป หรือคาดเดาได้จึงเสี่ยงต่อการค้นหาด้วยพจนานุกรมและการลองทุกความเป็นไปได้ แม้จะไม่ได้ย้อนอัลกอริทึมโดยตรงก็ตาม นี่เป็นเหตุผลหนึ่งที่ไม่ควรใช้แฮช SHA-512/256 แบบธรรมดาเพื่อจัดเก็บรหัสผ่าน หากต้องจัดเก็บรหัสผ่าน ให้ใช้วิธีแฮชรหัสผ่านที่ตั้งใจออกแบบให้ทำงานช้าและใช้ salt เช่น Argon2id, bcrypt หรือ scrypt แทนผลลัพธ์ SHA-512/256 แบบธรรมดาจากเครื่องมือนี้

ปัจจุบัน SHA-512/256 ใช้กับงานใดบ้าง?

SHA-512/256 ใช้ในกรณีที่ต้องการไดเจสต์ 256 บิตและซอฟต์แวร์รองรับตัวแปร SHA-2 นี้โดยเฉพาะ โครงสร้างภายในที่อิงกับ SHA-512 อาจเหมาะกับระบบที่ออกแบบมาสำหรับการประมวลผลแบบ 64 บิต แต่ประสิทธิภาพจริงขึ้นอยู่กับฮาร์ดแวร์และไลบรารีซอฟต์แวร์

  • เช็กซัม ใช้ตรวจหาการเปลี่ยนแปลงโดยไม่ตั้งใจในข้อความ ระเบียน หรือไฟล์ หากต้องการตรวจหาการแก้ไขโดยไม่ได้รับอนุญาต ต้องเปรียบเทียบกับไดเจสต์ SHA-512/256 ที่เชื่อถือได้หรือได้รับการปกป้องแยกต่างหาก
  • การขจัดข้อมูลซ้ำ ใช้ระบุระเบียนหรือเนื้อหาที่น่าจะมีไบต์เหมือนกัน แอปพลิเคชันยังควรรองรับความเป็นไปได้ในทางทฤษฎีที่จะเกิด collision
  • ความเข้ากันได้กับระบบเดิม ใช้เมื่อรูปแบบไฟล์ API โปรโตคอล หรือคอลัมน์ฐานข้อมูลที่มีอยู่ระบุให้ใช้ SHA-512/256 อย่างชัดเจน
  • โปรโตคอลการเข้ารหัส ใช้กับโปรโตคอลที่กำหนดอัลกอริทึมนี้สำหรับสร้างไดเจสต์ของข้อมูลหรือสร้าง HMAC ที่รองรับ

อย่าใช้ SHA-256 แทนเพียงเพราะทั้งสองอัลกอริทึมให้ผลลัพธ์ 256 บิต ไดเจสต์ของทั้งคู่ต่างกันและใช้ชื่ออัลกอริทึมคนละชื่อ เช่นเดียวกัน เครื่องมือสร้าง SHA-512/224 และเครื่องมือสร้าง SHA-512 ให้ไดเจสต์ที่มีความยาวต่างกัน ส่วนเครื่องมือสร้าง SHA-3/224 อยู่ในตระกูลแฮชอีกตระกูลหนึ่ง

SHA-512/256 จัดการช่องว่างและข้อความ Unicode อย่างไร?

SHA-512/256 ทำแฮชจากไบต์ ดังนั้นช่องว่าง เครื่องหมายวรรคตอน ตัวเลข และการเข้ารหัสอักขระล้วนมีผลต่อผลลัพธ์ เครื่องมือสร้าง SHA-512/256 จะทำแฮชตัวเลขที่ป้อนเป็นข้อความตามอักขระที่ใช้แทนตัวเลขนั้น ตัวอย่างเช่น ในมุมมองของอัลกอริทึม 42, 042 และ 42.0 เป็นข้อมูลที่ไม่เกี่ยวข้องกัน

อักขระที่มีเครื่องหมายกำกับเสียงและอักขระที่ไม่ใช่ละตินต้องถูกเข้ารหัสเป็นไบต์ก่อน โดยทั่วไปใช้ UTF-8 ข้อความสองชุดที่ดูเหมือนกันอาจให้ค่าแฮชต่างกัน หากใช้รูปแบบ Unicode คนละแบบ ตัวอักษรที่มีเครื่องหมายกำกับเสียงอาจจัดเก็บเป็นหนึ่ง code point หรือเป็นตัวอักษรพื้นฐานตามด้วย combining mark ก่อนเปรียบเทียบไดเจสต์ SHA-512/256 จากเครื่องมือนี้กับระบบอื่น ควรทำ Unicode normalization ให้สอดคล้องกัน

แม้ข้อมูลที่ป้อนจะยาวมาก ผลลัพธ์ก็ยังเป็นไดเจสต์ 256 บิต ข้อมูลว่างก็มีไดเจสต์ SHA-512/256 ที่กำหนดไว้เช่นกัน แต่ช่องป้อนข้อมูลว่างในอินเทอร์เฟซอาจได้รับการประมวลผลต่างจากข้อความความยาวศูนย์ที่ตั้งใจส่งเข้าไป การใช้อัลกอริทึมผิด การเข้ารหัสที่ต่างกัน รวมถึงช่องว่างปกติที่อยู่ต้นหรือท้ายข้อความ เป็นสาเหตุที่พบบ่อยของเช็กซัมไม่ตรงกัน แท็บที่มองไม่เห็น ความแตกต่างของอักขระขึ้นบรรทัดใหม่ระหว่าง Windows กับ Unix และช่องว่างแบบไม่ตัดบรรทัดที่คัดลอกมา ก็อาจทำให้ค่าไม่ตรงกันได้หากมีอยู่ในข้อมูล

คำถามที่พบบ่อย

SHA-512/256 เหมือนกับ SHA-256 ไหม?

ไม่เหมือนกัน แม้ทั้งคู่จะให้ไดเจสต์ 256 บิต แต่ SHA-256 ใช้โครงสร้างภายในแบบ 32 บิต ส่วน SHA-512/256 ใช้โครงสร้างของ SHA-512 และมีค่าเริ่มต้นเฉพาะของตัวเอง ข้อมูลเดียวกันจึงให้ผลลัพธ์ต่างกันเมื่อใช้อัลกอริทึมสองแบบนี้

SHA-512/256 เป็นแค่แฮช SHA-512 ที่ตัดให้สั้นลงหรือไม่?

ไม่ใช่ SHA-512/256 เริ่มต้นด้วยค่าแฮชเริ่มต้นที่ต่างออกไป ผลลัพธ์จึงไม่ใช่ 256 บิตแรกของไดเจสต์ SHA-512 ทั่วไป การตัดทอน SHA-512 จึงไม่ผ่านการตรวจสอบความเข้ากันได้ที่กำหนดให้ใช้ SHA-512/256

ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของเลขฐานสิบหกทำให้แฮชเปลี่ยนไหม?

สำหรับไดเจสต์ SHA-512/256 เลขฐานสิบหกที่เขียนด้วยตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กสามารถแทนไบต์ของไดเจสต์เดียวกันได้ อย่างไรก็ตาม ฐานข้อมูลหรือการเปรียบเทียบข้อความที่แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อาจถือว่ารูปแบบทั้งสองต่างกัน จึงควรใช้รูปแบบที่ตกลงร่วมกันให้เหมือนกันทั้งระบบ

ข้อมูลสองชุดที่ต่างกันมีไดเจสต์ SHA-512/256 เหมือนกันได้ไหม?

ในทางทฤษฎีเป็นไปได้ เพราะข้อมูลที่เป็นไปได้ไม่จำกัดจำนวนถูกจับคู่เข้ากับผลลัพธ์จำนวนคงที่ คู่ข้อมูลลักษณะนี้เรียกว่า collision ปัจจุบันยังไม่พบวิธีโจมตีแบบ collision ที่ใช้ได้จริงกับ SHA-512/256 แต่แอปพลิเคชันไม่ควรถือว่าค่าแฮชมีเอกลักษณ์เฉพาะในทางคณิตศาสตร์

ใช้ SHA-512/256 เป็นรหัสยืนยันความถูกต้องของข้อความได้ไหม?

อย่าสร้าง MAC ด้วยการวางข้อมูลลับไว้หน้าข้อความแล้วนำข้อความที่รวมกันไปทำแฮช หากต้องยืนยันความถูกต้องด้วยคีย์ลับ ให้ใช้อิมพลีเมนเทชัน HMAC-SHA-512/256 ที่เป็นมาตรฐาน

ตรวจสอบอีกครั้งก่อนใช้ผลลัพธ์

ก่อนเปรียบเทียบไดเจสต์จากเครื่องมือนี้ ให้ตรวจสอบว่าค่าอีกชุดใช้ SHA-512/256 ใช้การเข้ารหัสข้อมูลเหมือนกัน และใช้รูปแบบเลขฐานสิบหกแบบเดียวกัน ลบช่องว่างหรือการขึ้นบรรทัดใหม่ที่ไม่ได้ตั้งใจ แต่อย่าแก้ไขข้อความที่ต้องมีอักขระเหล่านั้น หากเป็นข้อมูลที่ละเอียดอ่อน โปรดจำไว้ว่าเครื่องมือนี้ประมวลผลค่าบนเซิร์ฟเวอร์ผ่าน HTTPS แม้จะไม่มีการจัดเก็บค่าไว้ก็ตาม

เครื่องมือยอดนิยม