ตัวสร้างแฮช SHA-512

คำนวณไดเจสต์ SHA-512 ขนาด 512 บิตของข้อความ ไบต์เลขฐานสิบหก หรือไฟล์ ตรวจสอบกับค่าที่คาดไว้ และดู SHA-384, SHA-256, SHA-1, MD5 และ CRC-32 ของอินพุตเดียวกัน

อัลกอริทึมทั้งหมด

ทำงานภายในเบราว์เซอร์ของคุณทั้งหมด ไม่มีการอัปโหลดข้อมูลใด ๆ

วิธีใช้งาน

  1. ป้อนข้อความหรือไบต์เลขฐานสิบหก หรือคลิก “เปิดไฟล์” เพื่อแฮชเนื้อหาของไฟล์
  2. เลือก “รูปแบบเอาต์พุต” โดยใช้ hex สำหรับเช็กซัมแบบ sha512sum หรือ Base64 สำหรับสตริง integrity
  3. วางค่าที่คาดไว้ลงในช่อง “เปรียบเทียบกับ” เพื่อตรวจสอบ รองรับทั้งเลขฐานสิบหกและ Base64
  4. ต้องการ SHA-384 ใช่ไหม เลือกได้ที่ “อัลกอริทึม” หรือคัดลอกจากตาราง “อัลกอริทึมทั้งหมด”

SHA-512 คืออะไร

SHA-512 คือฟังก์ชัน SHA-2 ที่มีเอาต์พุตยาวที่สุด กำหนดไว้ใน FIPS 180-4 และ RFC 6234 ในขณะที่ SHA-256 ทำงานกับเวิร์ดขนาด 32 บิต SHA-512 ใช้เวิร์ดขนาด 64 บิต บล็อกขนาด 1024 บิต และ 80 รอบ แล้วให้ไดเจสต์ขนาด 512 บิต คือเลขฐานสิบหก 128 อักขระหรือ Base64 88 อักขระ ความทนทานต่อการชนกันราว 256 บิตนั้นเหนือกว่าการโจมตีใด ๆ ที่คาดการณ์ได้ไปมาก และเช่นเดียวกับแฮชทุกชนิด SHA-512 เป็นฟังก์ชันทางเดียว ไม่สามารถกู้อินพุตคืนจากไดเจสต์ได้

เนื่องจากใช้การคำนวณแบบ 64 บิต SHA-512 จึงมักเร็วกว่า SHA-256 ต่อไบต์บนโปรเซสเซอร์ 64 บิตที่ไม่มีชุดคำสั่งสำหรับ SHA-256 โดยเฉพาะ แต่บน CPU ที่มีชุดคำสั่งดังกล่าว SHA-256 มักจะเร็วกว่า

SHA-384, SHA-512/256 และรูปแบบตัดสั้นอื่น ๆ

แฮชมาตรฐานหลายตัวคือ SHA-512 ที่ใช้ค่าตั้งต้นต่างกันและตัดเอาต์พุตให้สั้นลง:

ชื่อเอาต์พุตความยาวเลขฐานสิบหกการใช้งานทั่วไป
SHA-384384 บิต96ชุดการเข้ารหัสลับ (cipher suite) ของ TLS 1.3, Subresource Integrity
SHA-512/256256 บิต64เอาต์พุตขนาดเท่า SHA-256 ด้วยความเร็วของ SHA-512
SHA-512/224224 บิต56ไม่ค่อยมีการใช้งาน

เพราะค่าตั้งต้นต่างกัน SHA-512/256 จึงไม่ใช่เลขฐานสิบหก 64 อักขระแรกของ SHA-512 รูปแบบตัดสั้นยังต้านทานการโจมตีแบบขยายความยาว (length extension) ที่ส่งผลต่อ SHA-256 และ SHA-512 แบบเต็มได้ด้วย หน้านี้คำนวณ SHA-384 และ SHA-512 หากต้องการ SHA-512/256 ให้ใช้เครื่องมืออื่น เช่น openssl dgst -sha512-256

สตริง integrity แบบ Base64 และแฮชรหัสผ่าน

เนื่องจากรูปแบบเลขฐานสิบหกยาวมาก รูปแบบข้อมูลที่ออกแบบให้เครื่องอ่านจึงมักเก็บ SHA-512 เป็น Base64 Subresource Integrity รับค่า sha256-, sha384- และ sha512- ตามด้วยไดเจสต์ Base64 และไฟล์ package-lock.json ของ npm เก็บค่า integrity ของแต่ละแพ็กเกจ ซึ่งมักขึ้นต้นด้วย sha512- ให้เปิดไฟล์ เลือกเอาต์พุตเป็น Base64 แล้วเติมตัวนำหน้า

แฮชรหัสผ่านของ Linux ที่ขึ้นต้นด้วย $6$ คือ sha512crypt ซึ่งเป็น SHA-512 ที่ใช้ salt และทำซ้ำหลายพันรอบ จึงไม่มีทางเท่ากับ SHA-512 ธรรมดาของรหัสผ่าน การแฮชรหัสผ่านด้วย SHA-512 เพียงครั้งเดียวถูกโจมตีแบบ brute force ได้รวดเร็วไม่ว่าไดเจสต์จะยาวเพียงใด ให้จัดเก็บรหัสผ่านด้วย Argon2id, scrypt, bcrypt หรือ PBKDF2-HMAC-SHA512

SHA-512 ในบรรทัดคำสั่งและในโค้ด

sha512sum file.tar.gz                        # Linux
shasum -a 512 file.tar.gz                    # macOS
certutil -hashfile file.tar.gz SHA512        # Windows
Get-FileHash file.tar.gz -Algorithm SHA512   # PowerShell

# ไดเจสต์ Base64 สำหรับแอตทริบิวต์ integrity
openssl dgst -sha512 -binary file.js | openssl base64 -A

# Python
hashlib.sha512(data).hexdigest()

// Node.js
crypto.createHash('sha512').update(data).digest('base64')

ในหน้านี้ SHA-512 คำนวณโดย Web Crypto API ในเบราว์เซอร์ของคุณ และตาราง “อัลกอริทึมทั้งหมด” จะแสดงค่า SHA-384, SHA-256, SHA-1, MD5 และ CRC ของอินพุตเดียวกัน

ตัวอย่าง

อินพุต (UTF-8)SHA-512
Hello, World!374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387
Base64.is44960f483bc929874301e2fb54f4337c84641ad12cb6b2639875e26e490664e65da046cf43eafb2ab4a47b5d3eb66637630af5cba841974bfaa4e372dd0453d2
你好5232181bc0d9888f5c9746e410b4740eb461706ba5dacfbc93587cecfc8d068bac7737e92870d6745b11a25e9cd78b55f4ffc706f73cfcae5345f1b53fb8f6b5

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

SHA-512 ปลอดภัยกว่า SHA-256 หรือไม่

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

ถอดรหัสแฮช SHA-512 ได้หรือไม่

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

แฮช SHA-512 ยาวเท่าใด
64 ไบต์ คือเลขฐานสิบหก 128 อักขระ หรือ Base64 88 อักขระที่ลงท้ายด้วย == SHA3-512, BLAKE2b และ Whirlpool มีความยาวเท่ากัน จึงควรวางไดเจสต์ที่ไม่ทราบชนิดลงในเครื่องมือระบุชนิดแฮชเพื่อดูว่าอัลกอริทึมใดบ้างที่เป็นไปได้
SHA-512 กับ SHA3-512 เหมือนกันหรือไม่

ไม่เหมือน SHA3-512 (FIPS 202) อิงกับ Keccak ซึ่งเป็นการออกแบบที่แตกต่างโดยสิ้นเชิง และให้ไดเจสต์ต่างกันสำหรับอินพุตเดียวกัน หน้านี้ไม่ได้คำนวณ SHA-3

ทำไมสตริงสองชุดที่ดูเหมือนกันจึงให้แฮชต่างกัน

แฮชคำนวณจากไบต์ อักขระอย่าง é อาจจัดเก็บเป็นโค้ดพอยต์เดียว หรือเป็น e ตามด้วยเครื่องหมายเน้นเสียงแบบผสม และช่องว่างต่อท้าย การจบบรรทัด (LF หรือ CRLF) รวมถึงชุดอักขระ (UTF-8, UTF-16, Windows-1252) ก็ทำให้ไบต์เปลี่ยนไปด้วย ให้เลือก “การเข้ารหัสอักขระ” ให้ตรงกับที่ระบบอื่นใช้ หรือวางไบต์ที่ตรงกันทุกไบต์ในรูปเลขฐานสิบหก