Trình tạo SHA-512

5 trên 2 xếp hạng

Trình tạo SHA-512 là công cụ miễn phí giúp chuyển đổi chuỗi đầu vào thành giá trị băm SHA-512 có độ dài cố định 512 bit.

SHA-512 là gì?

SHA-512 là một hàm băm mật mã thuộc họ SHA-2, do Cơ quan An ninh Quốc gia Hoa Kỳ thiết kế và được NIST công bố vào năm 2001. Hàm này nhận đầu vào có độ dài bất kỳ, xử lý theo một chiều và trả về bản tóm lược có độ dài cố định.

SHA-512 tạo ra kết quả dài 512 bit, tương đương 64 byte hoặc 128 ký tự thập lục phân. Thuật toán xử lý dữ liệu theo từng khối 1.024 bit và sử dụng các phép toán 64 bit, đây là điểm khác biệt so với SHA-256. Trên một số hệ thống 64 bit, SHA-512 có thể xử lý đầu vào lớn nhanh hơn SHA-256, tuy nhiên hiệu suất thực tế còn phụ thuộc vào cách triển khai và phần cứng.

SHA-512 vẫn bảo đảm an toàn mật mã cho các mục đích băm thông thường. Hiện chưa có phương pháp tấn công va chạm khả thi nào đối với thuật toán đầy đủ và SHA-512 cũng chưa bị ngừng khuyến nghị sử dụng. Theo giới hạn ngày sinh, mức kháng va chạm dự kiến của thuật toán vào khoảng 256 bit. Dù vậy, SHA-512 không phù hợp với mọi tác vụ bảo mật, đặc biệt là lưu trữ mật khẩu.

Cách dùng Trình tạo SHA-512

Nhập chính xác chuỗi cần băm rồi xem giá trị được tạo trong trường kết quả Mã băm SHA-512. Kết quả phải gồm 128 ký tự thập lục phân, sử dụng các chữ số từ 0 đến 9 và chữ cái từ a đến f.

  1. Sao chép chính xác văn bản nguồn, bao gồm mọi dấu cách, dấu câu và dấu xuống dòng thuộc nội dung đó.
  2. Tạo giá trị băm rồi sao chép toàn bộ kết quả, không chỉ lấy một phần đã rút gọn.
  3. Chỉ so sánh với một bản tóm lược SHA-512 khác khi cả hai được tạo từ cùng một dãy byte và biểu diễn theo cùng một định dạng.

Phép tính được thực hiện trên máy chủ. Dữ liệu đầu vào được gửi đến máy chủ qua HTTPS và không được lưu trữ. Dù kết nối sử dụng HTTPS và dữ liệu không được lưu, bạn vẫn nên tránh gửi mật khẩu, khóa riêng tư, mã khôi phục hoặc các thông tin bí mật khác nếu không cần xử lý chúng bằng một dịch vụ trực tuyến.

Có thể giải mã hoặc đảo ngược SHA-512 không?

Không. Không thể giải mã SHA-512 vì băm không phải là mã hóa và không có khóa giải mã. Hàm băm loại bỏ một phần thông tin khi tạo kết quả có độ dài cố định, vì vậy không thể trực tiếp khôi phục giá trị ban đầu từ bản tóm lược.

Kẻ tấn công vẫn có thể đoán các đầu vào khả dĩ, băm từng giá trị rồi so sánh kết quả. Cách này có hiệu quả với những giá trị ngắn, phổ biến hoặc dễ đoán như từ trong từ điển, số điện thoại và mật khẩu được dùng lại. Các cơ sở dữ liệu giá trị băm trực tuyến cũng có thể chứa những giá trị đã được tính sẵn cho các chuỗi thông dụng. Vì thế, băm một đầu vào yếu không thể biến nó thành thông tin bí mật.

Về lý thuyết, các đầu vào khác nhau có thể tạo ra cùng một bản tóm lược, hiện tượng này được gọi là va chạm. Với SHA-512 đầy đủ, việc tìm ra va chạm như vậy nằm ngoài khả năng thực tế của các phương pháp đã biết. Tuy nhiên, đặc tính bảo mật này không thay đổi thực tế rằng đầu vào dễ đoán vẫn có thể bị phát hiện bằng cách thử lặp lại.

Hiện nay nên dùng SHA-512 trong trường hợp nào?

SHA-512 phù hợp khi hệ thống hoặc đặc tả yêu cầu bản tóm lược SHA-2 đầy đủ dài 512 bit. Những ứng dụng hợp lệ thường gặp gồm kiểm tra dữ liệu có bị thay đổi hay không, nhận diện nội dung trùng lặp và duy trì khả năng tương thích với các định dạng hoặc phần mềm hiện có.

  • Tổng kiểm có thể xác nhận rằng một mục đã tải xuống hoặc truyền đi khớp với giá trị SHA-512 được công bố riêng. Chỉ riêng tổng kiểm không thể chứng minh ai là người đã công bố dữ liệu.
  • Hệ thống loại bỏ dữ liệu trùng lặp có thể dùng bản tóm lược làm mã định danh nội dung nhỏ gọn. Tuy nhiên, hệ thống xử lý đầu vào có chủ đích gây hại vẫn nên xác minh các kết quả trùng khớp khi cần.
  • Khả năng tương thích với hệ thống cũ có thể đòi hỏi SHA-512 khi một cột cơ sở dữ liệu, API hoặc định dạng trao đổi hiện có đã yêu cầu 128 ký tự thập lục phân.
  • Chữ ký số và giao thức xác thực có thể dùng SHA-512 làm một thành phần trong cấu trúc mật mã đã được xác định.

Không dùng SHA-512 thuần túy để lưu trữ mật khẩu. Thuật toán này được thiết kế để tính toán nhanh, nhờ đó kẻ tấn công có thể thử các giá trị dự đoán với tốc độ cao. Hãy dùng hàm băm mật khẩu như Argon2id, scrypt, bcrypt hoặc PBKDF2 với thông số phù hợp và một salt riêng biệt.

Chọn SHA-256 khi cần bảo đảm khả năng tương thích hoặc muốn bản tóm lược ngắn hơn, dài 64 ký tự. Dùng Trình tạo SHA-384 khi giao thức yêu cầu rõ SHA-384. SHA-512/224 là một thuật toán được định nghĩa riêng với kết quả dài 224 bit, không đơn thuần là phiên bản rút gọn tùy ý của chuỗi SHA-512.

Thông tin đầu vào và ví dụ cụ thể

SHA-512 băm dữ liệu theo byte, vì vậy mọi chi tiết trong đầu vào đều quan trọng. Chữ hoa, dấu cách ở cuối, dấu câu và ký tự xuống dòng đều làm thay đổi dãy byte, đồng thời thường tạo ra một bản tóm lược hoàn toàn khác. Văn bản Invoice 42 và Invoice 42 , trong đó phiên bản thứ hai có một dấu cách ở cuối, là hai đầu vào khác nhau.

Với đầu vào ASCII abc, kết quả SHA-512 tiêu chuẩn là:

ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f

Các số được nhập vào trường văn bản sẽ được xử lý như ký tự. Chẳng hạn, 0123 khác với 123 vì số không ở đầu là một phần của chuỗi. Văn bản có dấu và văn bản sử dụng hệ chữ ngoài Latinh cũng có giá trị băm hợp lệ, nhưng cách mã hóa ký tự và chuẩn hóa Unicode sẽ ảnh hưởng đến các byte. Vì vậy, hai chuỗi trông giống hệt nhau vẫn có thể tạo ra các giá trị khác nhau nếu một chuỗi dùng ký tự dựng sẵn còn chuỗi kia dùng các dấu kết hợp.

Thuật toán SHA-512 xác định bản tóm lược cho cả dãy byte rỗng và có thể xử lý thông điệp rất dài. Tuy nhiên, giao diện web có thể chịu giới hạn thực tế về yêu cầu hoặc máy chủ. Với tệp rất lớn hoặc dữ liệu không nên truyền đi, hãy dùng lệnh băm trên máy cục bộ.

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

Viết hoa ký tự thập lục phân có làm thay đổi giá trị băm SHA-512 không?

Không. Ký tự thập lục phân viết hoa và viết thường chỉ là hai cách biểu diễn cùng một bản tóm lược, vì vậy AF và af đại diện cho cùng một giá trị byte. Tuy nhiên, chữ hoa hay chữ thường trong đầu vào ban đầu sẽ làm thay đổi kết quả.

Tôi có thể dùng công cụ này để tính tổng kiểm của tệp không?

Không. Công cụ này được thiết kế cho đầu vào dạng chuỗi và không có trường kết quả dành cho tệp. Việc dán nội dung tệp có thể làm thay đổi dữ liệu nhị phân hoặc ký tự xuống dòng. Với tệp, hãy dùng lệnh cục bộ như sha512sum trên Linux hoặc Get-FileHash -Algorithm SHA512 trong PowerShell.

SHA-512 có an toàn để xác thực thông điệp không?

SHA-512 thuần túy không xác thực được thông điệp vì bất kỳ ai cũng có thể tính bản tóm lược mới sau khi sửa nội dung. Cách ghép khóa bí mật vào đầu chuỗi một cách đơn giản cũng có thể chịu ảnh hưởng từ đặc tính mở rộng độ dài của SHA-512. Hãy dùng HMAC-SHA-512 khi cần xác thực thông điệp bằng khóa bí mật dùng chung.

Thêm salt có giúp SHA-512 phù hợp để lưu mật khẩu không?

Không. Salt ngăn các mật khẩu giống nhau tạo ra cùng một giá trị lưu trữ, nhưng không khiến một hàm băm đa dụng có tốc độ cao trở nên đủ tốn kém để chống đoán mật khẩu. Hãy dùng hàm băm chuyên dụng cho mật khẩu, đồng thời lưu mã định danh thuật toán, salt và thông số chi phí cùng với kết quả.

Tại sao giá trị SHA-512 của tôi khác với kết quả từ trang web hoặc chương trình khác?

Hãy kiểm tra dấu cách ẩn, dấu xuống dòng ở cuối, cách mã hóa ký tự khác nhau hoặc dấu thứ tự byte bị sao chép kèm theo. Đồng thời, xác nhận rằng chương trình kia tạo SHA-512 đầy đủ chứ không phải SHA-384, SHA-512/224, HMAC-SHA-512 hoặc đầu ra được mã hóa Base64. Khi cần khớp chính xác, hãy so sánh đầu vào theo từng byte.

Công cụ phổ biến