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

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

เครื่องมือสร้าง SHA-512 เป็นเครื่องมือฟรีที่แปลงสตริงที่ป้อนให้เป็นค่าแฮช SHA-512 แบบความยาวคงที่ 512 บิต

SHA-512 คืออะไร?

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

SHA-512 ให้ผลลัพธ์ขนาด 512 บิต เท่ากับ 64 ไบต์ หรือเลขฐานสิบหก 128 อักขระ โดยประมวลผลข้อมูลเป็นบล็อกขนาด 1,024 บิตและใช้การดำเนินการแบบ 64 บิต ซึ่งเป็นจุดที่แตกต่างจาก SHA-256 ในระบบ 64 บิตบางระบบ SHA-512 อาจประมวลผลข้อมูลขนาดใหญ่ได้เร็วกว่า SHA-256 แต่ประสิทธิภาพจริงขึ้นอยู่กับวิธีติดตั้งใช้งานและฮาร์ดแวร์

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

ใช้เครื่องมือสร้าง SHA-512 อย่างไร?

ป้อนสตริงที่ต้องการแฮชให้ตรงทุกอักขระ แล้วดูค่าที่สร้างขึ้นในช่องผลลัพธ์ แฮช SHA-512 ผลลัพธ์ควรเป็นเลขฐานสิบหก 128 อักขระ โดยใช้ตัวเลข 0 ถึง 9 และตัวอักษร a ถึง f

  1. คัดลอกข้อความต้นฉบับให้ตรงทั้งหมด รวมถึงเว้นวรรค เครื่องหมายวรรคตอน และการขึ้นบรรทัดใหม่ที่เป็นส่วนหนึ่งของข้อความ
  2. สร้างแฮชแล้วคัดลอกผลลัพธ์ให้ครบ อย่าคัดลอกเฉพาะส่วนที่ตัดให้สั้นลง
  3. เปรียบเทียบกับค่าไดเจสต์ SHA-512 อื่นต่อเมื่อทั้งสองค่าสร้างจากไบต์เดียวกันและแสดงผลในรูปแบบเดียวกัน

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

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

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

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

ในทางทฤษฎี ข้อมูลต้นฉบับต่างกันอาจให้ค่าไดเจสต์เดียวกันได้ เหตุการณ์นี้เรียกว่าการชนกัน สำหรับ SHA-512 ฉบับเต็ม การหาค่าชนกันด้วยวิธีที่ทราบในปัจจุบันยังเกินขอบเขตที่จะทำได้จริง คุณสมบัติด้านความปลอดภัยนี้ไม่ได้เปลี่ยนข้อเท็จจริงที่ว่า ข้อมูลซึ่งคาดเดาได้อาจถูกค้นพบด้วยการทดสอบซ้ำหลายครั้ง

ปัจจุบันควรใช้ SHA-512 กับงานใด?

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

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

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

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

รายละเอียดข้อมูลที่ป้อนและตัวอย่าง

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

สำหรับข้อมูล ASCII อย่าง abc ผลลัพธ์ SHA-512 มาตรฐานคือ:

ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f

ตัวเลขที่ป้อนในช่องข้อความจะถูกมองเป็นอักขระ ตัวอย่างเช่น 0123 ต่างจาก 123 เพราะเลขศูนย์นำหน้าเป็นส่วนหนึ่งของสตริง ข้อความที่มีเครื่องหมายกำกับเสียงและข้อความที่ไม่ใช่อักษรละตินก็สร้างแฮชได้เช่นกัน แต่การเข้ารหัสอักขระและการปรับ Unicode ให้เป็นรูปแบบมาตรฐานจะส่งผลต่อไบต์ ดังนั้น สตริงสองชุดที่ดูเหมือนกันทุกประการอาจให้ค่าต่างกัน หากชุดหนึ่งใช้อักขระแบบประกอบสำเร็จ ส่วนอีกชุดใช้เครื่องหมายประกอบอักขระ

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

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

เลขฐานสิบหกตัวพิมพ์ใหญ่ทำให้ค่าแฮช SHA-512 เปลี่ยนไหม?

ไม่เปลี่ยน เลขฐานสิบหกตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเป็นเพียงการแสดงไดเจสต์เดียวกันคนละแบบ ดังนั้น AF และ af จึงแทนค่าไบต์เดียวกัน แต่ตัวพิมพ์เล็กหรือพิมพ์ใหญ่ในข้อมูลต้นฉบับมีผลต่อค่าแฮช

ใช้เครื่องมือนี้คำนวณเช็กซัมของไฟล์ได้ไหม?

เครื่องมือนี้ออกแบบมาสำหรับข้อมูลแบบสตริงและไม่มีช่องผลลัพธ์สำหรับไฟล์ การวางเนื้อหาจากไฟล์อาจทำให้ข้อมูลไบนารีหรือรูปแบบการจบบรรทัดเปลี่ยนไป หากต้องการคำนวณไฟล์ ให้ใช้คำสั่งภายในเครื่อง เช่น sha512sum บน Linux หรือ Get-FileHash -Algorithm SHA512 ใน PowerShell

SHA-512 ปลอดภัยสำหรับการยืนยันความถูกต้องของข้อความไหม?

SHA-512 แบบตรงๆ ใช้ยืนยันความถูกต้องของข้อความไม่ได้ เพราะทุกคนสามารถแก้ไขเนื้อหาแล้วคำนวณไดเจสต์ใหม่ได้ โครงสร้างอย่างง่ายที่เติมข้อมูลลับไว้หน้าข้อความอาจได้รับผลกระทบจากคุณสมบัติ length extension ของ SHA-512 เช่นกัน หากต้องใช้ข้อมูลลับร่วมกันเพื่อยืนยันความถูกต้องของข้อความ ให้ใช้ HMAC-SHA-512

เติม salt แล้วใช้ SHA-512 เก็บรหัสผ่านได้ไหม?

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

ทำไมค่า SHA-512 ของฉันไม่ตรงกับเว็บไซต์หรือโปรแกรมอื่น?

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

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