Tạo mã băm SHA-512

Tính giá trị băm SHA-512 dài 512 bit cho văn bản, byte hex hoặc tệp, đối chiếu với giá trị mong đợi và xem SHA-384, SHA-256, SHA-1, MD5 và CRC-32 của cùng đầu vào.

Tất cả thuật toán

Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên.

Cách sử dụng

  1. Nhập văn bản hoặc byte hex, hoặc nhấp Mở tệp để băm nội dung của tệp.
  2. Chọn định dạng ở mục Đầu ra dạng: hex cho tổng kiểm tra kiểu sha512sum, Base64 cho chuỗi integrity.
  3. Dán giá trị mong đợi vào ô So sánh với để kiểm tra; công cụ chấp nhận cả hex lẫn Base64.
  4. Cần SHA-384? Hãy chọn nó trong ô Thuật toán hoặc sao chép từ bảng Tất cả thuật toán.

SHA-512 là gì?

SHA-512 là hàm SHA-2 có đầu ra dài nhất, được đặc tả trong FIPS 180-4 và RFC 6234. Trong khi SHA-256 làm việc với các từ 32 bit, SHA-512 dùng từ 64 bit, khối 1024 bit và 80 vòng, rồi cho ra giá trị băm dài 512 bit: 128 ký tự hex hoặc 88 ký tự Base64. Khả năng chống va chạm khoảng 256 bit của nó vượt xa mọi cuộc tấn công có thể hình dung được, và như mọi hàm băm, nó là hàm một chiều: không thể khôi phục đầu vào từ giá trị băm.

Vì dùng phép tính số học 64 bit, SHA-512 thường nhanh hơn SHA-256 (tính trên mỗi byte) trên các bộ xử lý 64 bit không có lệnh chuyên dụng cho SHA-256. Trên những CPU có các lệnh này, SHA-256 thường nhanh hơn.

SHA-384, SHA-512/256 và các biến thể rút gọn khác

Một số hàm băm tiêu chuẩn thực chất là SHA-512 chạy với giá trị khởi tạo khác và được cắt ngắn đầu ra:

TênĐầu raĐộ dài hexỨng dụng điển hình
SHA-384384 bit96Các cipher suite của TLS 1.3, Subresource Integrity
SHA-512/256256 bit64Đầu ra cỡ SHA-256 với tốc độ của SHA-512
SHA-512/224224 bit56Hiếm khi được dùng

Vì giá trị khởi tạo khác nhau, SHA-512/256 không phải là 64 ký tự hex đầu tiên của SHA-512. Các biến thể rút gọn này cũng chống được tấn công mở rộng độ dài, vốn ảnh hưởng đến SHA-256 và SHA-512 đầy đủ. Trang này tính SHA-384 và SHA-512; với SHA-512/256, hãy dùng công cụ khác, ví dụ openssl dgst -sha512-256.

Chuỗi integrity Base64 và mã băm mật khẩu

Vì dạng hex quá dài, các định dạng dành cho máy đọc thường lưu SHA-512 ở dạng Base64. Subresource Integrity chấp nhận sha256-, sha384- và sha512- theo sau là giá trị băm Base64, còn tệp package-lock.json của npm lưu một giá trị integrity cho mỗi gói, thường bắt đầu bằng sha512-. Hãy mở tệp, chọn Base64 ở mục Đầu ra dạng và thêm tiền tố.

Mã băm mật khẩu Linux bắt đầu bằng $6$ là sha512crypt: SHA-512 có salt được lặp lại hàng nghìn lần, nên chúng không bao giờ bằng SHA-512 thuần của mật khẩu. Một lần băm SHA-512 duy nhất trên mật khẩu rất dễ bị tấn công vét cạn (brute-force), dù giá trị băm dài đến đâu; hãy lưu mật khẩu bằng Argon2id, scrypt, bcrypt hoặc PBKDF2-HMAC-SHA512.

SHA-512 trên dòng lệnh và trong mã nguồn

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

# Giá trị băm Base64 cho thuộc tính integrity
openssl dgst -sha512 -binary file.js | openssl base64 -A

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

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

Trên trang này, SHA-512 được tính bằng Web Crypto API trong trình duyệt của bạn, và bảng Tất cả thuật toán liệt kê các giá trị SHA-384, SHA-256, SHA-1, MD5 và CRC của cùng đầu vào.

Ví dụ

Đầu vào (UTF-8)SHA-512
Hello, World!374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387
Base64.is44960f483bc929874301e2fb54f4337c84641ad12cb6b2639875e26e490664e65da046cf43eafb2ab4a47b5d3eb66637630af5cba841974bfaa4e372dd0453d2
你好5232181bc0d9888f5c9746e410b4740eb461706ba5dacfbc93587cecfc8d068bac7737e92870d6745b11a25e9cd78b55f4ffc706f73cfcae5345f1b53fb8f6b5

Câu hỏi thường gặp

SHA-512 có an toàn hơn SHA-256 không?

SHA-512 có biên an toàn lớn hơn, với khả năng chống va chạm khoảng 256 bit so với 128 bit của SHA-256, nhưng cả hai đều chưa bị phá vỡ và vượt xa khả năng tấn công vét cạn. Hãy chọn SHA-512 khi một định dạng yêu cầu, khi nó chạy nhanh hơn trên phần cứng của bạn hoặc khi bạn muốn giá trị băm dài hơn; còn lại, SHA-256 là đủ.

Mã băm SHA-512 có giải mã được không?

Không. Giá trị băm SHA-512 luôn dài 64 byte, dù đầu vào chỉ là một từ hay cả một ảnh đĩa, nên vô số đầu vào khác nhau có chung mỗi giá trị băm và chẳng có gì để giải mã. Giá trị băm chỉ có thể được so sánh với mã băm của một phỏng đoán; các trang tra cứu tìm ra từ thông dụng và mật khẩu theo cách đó, nhưng không bao giờ tìm được dữ liệu khó đoán.

Mã băm SHA-512 dài bao nhiêu?
64 byte: 128 ký tự hex hoặc 88 ký tự Base64 kết thúc bằng ==. SHA3-512, BLAKE2b và Whirlpool có cùng độ dài, vì vậy hãy dán giá trị băm chưa rõ vào công cụ nhận dạng mã băm để xem thuật toán nào phù hợp.
SHA-512 có giống SHA3-512 không?

Không. SHA3-512 (FIPS 202) dựa trên Keccak, một thiết kế hoàn toàn khác, và cho giá trị băm khác với cùng một đầu vào. Trang này không tính SHA-3.

Vì sao hai chuỗi trông giống nhau lại cho mã băm khác nhau?

Mã băm được tính trên byte. Một ký tự như é có thể được lưu thành một điểm mã (code point) duy nhất hoặc thành chữ e cộng với một dấu kết hợp; dấu cách ở cuối, kiểu xuống dòng (LF hay CRLF) và bảng mã (UTF-8, UTF-16, Windows-1252) cũng làm thay đổi các byte. Hãy chọn Bảng mã mà hệ thống kia đã dùng, hoặc dán chính xác các byte ở dạng hex.