Trình tạo SHA-512/256

5 trên 2 xếp hạng

Trình tạo SHA-512/256 là công cụ miễn phí dùng để tạo mã băm SHA-512/256 từ bất kỳ chuỗi đầu vào nào.

SHA-512/256 là gì?

SHA-512/256 là thuật toán băm mật mã tạo ra dấu vân tay 256 bit có độ dài cố định từ dữ liệu được cung cấp. SHA-512/256 hoạt động một chiều: cùng một đầu vào luôn tạo ra cùng một giá trị băm 256 bit, còn chỉ một thay đổi nhỏ thường cũng cho kết quả khác biệt đáng kể. Bản thân hàm băm SHA-512/256 không sử dụng khóa và không có bước giải mã.

SHA-512/256 thuộc họ SHA-2, do Cơ quan An ninh Quốc gia Hoa Kỳ thiết kế và được NIST chuẩn hóa lần đầu vào năm 2002. Biến thể SHA-512/256 được bổ sung vào FIPS 180-4 năm 2012. Thuật toán này sử dụng thiết kế nội bộ 64 bit của SHA-512 với giá trị khởi tạo riêng, sau đó trả về giá trị băm 256 bit. Vì vậy, đây không đơn thuần là SHA-512 bị cắt xuống còn 256 bit.

Giá trị băm có kích thước 32 byte, thường được biểu diễn bằng 64 ký tự thập lục phân. SHA-512/256 vẫn phù hợp cho mục đích băm mật mã và hiện chưa có phương pháp tấn công va chạm hoặc tìm ảnh trước nào khả thi được biết đến. Mức kháng va chạm dự kiến của thuật toán là khoảng 128 bit, còn mức kháng tìm ảnh trước là khoảng 256 bit.

Làm cách nào để tạo mã băm SHA-512/256?

Nhập chính xác chuỗi cần băm rồi lấy giá trị hiển thị trong trường kết quả Mã băm SHA-512/256. 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ữ.

Hãy sao chép đầy đủ giá trị băm gồm 64 ký tự thay vì chỉ lấy một phần rút gọn, trừ khi thông số kỹ thuật yêu cầu rõ việc cắt ngắn. Ví dụ, khi băm chuỗi invoice-1042, bạn nhận được một giá trị 256 bit hiển thị dưới dạng 64 ký tự thập lục phân. Chuỗi Invoice-1042 tạo ra giá trị khác vì chữ hoa và chữ thường là một phần của đầu vào.

Hãy kiểm tra kỹ chuỗi đã nhập vào Trình tạo SHA-512/256 trước khi sử dụng kết quả. Các trường hợp sau đều là những chuỗi byte khác nhau, vì vậy mã băm cũng khác nhau:

  • report
  • Report
  • report có dấu cách ở cuối
  • report. có dấu câu
  • report có ký tự xuống dòng ẩn ở sau

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

Không. Không thể giải mã giá trị băm SHA-512/256 vì băm không phải là mã hóa. Giá trị băm không chứa bản sao có thể khôi phục của chuỗi ban đầu và cũng không có khóa nào để đảo ngược phép tính.

Tuy nhiên, kẻ tấn công vẫn có thể dùng SHA-512/256 để băm các đầu vào có khả năng xuất hiện rồi so sánh kết quả. Vì vậy, các chuỗi ngắn, phổ biến hoặc dễ đoán vẫn có thể bị dò bằng từ điển hoặc vét cạn, dù bản thân thuật toán không bị đảo ngược. Đây là một trong những lý do không được dùng mã băm SHA-512/256 thuần túy để lưu mật khẩu. Để lưu mật khẩu, hãy dùng cơ chế băm mật khẩu có muối và được thiết kế để chạy chậm, chẳng hạn như Argon2id, bcrypt hoặc scrypt, thay vì kết quả SHA-512/256 thuần túy của công cụ này.

SHA-512/256 hiện vẫn được dùng ở đâu?

SHA-512/256 được dùng khi cần giá trị băm 256 bit và phần mềm hỗ trợ đúng biến thể SHA-2 này. Cấu trúc nội bộ dựa trên SHA-512 có thể phù hợp với các hệ thống được thiết kế để xử lý 64 bit, nhưng hiệu năng thực tế còn phụ thuộc vào phần cứng và thư viện phần mềm.

  • Tổng kiểm dùng để phát hiện thay đổi ngoài ý muốn trong văn bản, bản ghi hoặc tệp. Muốn phát hiện thay đổi trái phép, cần đối chiếu với một giá trị băm SHA-512/256 đáng tin cậy hoặc được bảo vệ độc lập.
  • Khử trùng lặp dùng để xác định các bản ghi hoặc nội dung có khả năng chứa cùng một dãy byte. Ứng dụng vẫn cần xử lý khả năng va chạm về mặt lý thuyết.
  • Khả năng tương thích với hệ thống cũ khi định dạng tệp, API, giao thức hoặc cột cơ sở dữ liệu hiện có quy định rõ SHA-512/256.
  • Giao thức mật mã quy định thuật toán này để băm dữ liệu hoặc tạo một HMAC được hỗ trợ.

Đừng thay SHA-512/256 bằng SHA-256 chỉ vì cả hai đều trả về 256 bit. Giá trị băm của chúng khác nhau và mỗi thuật toán có một tên riêng. Tương tự, Trình tạo SHA-512/224 và Trình tạo SHA-512 tạo ra giá trị băm có độ dài khác, còn Trình tạo SHA-3/224 thuộc một họ hàm băm riêng.

SHA-512/256 xử lý dấu cách và văn bản Unicode như thế nào?

SHA-512/256 băm các byte, vì vậy dấu cách, dấu câu, chữ số và cách mã hóa ký tự đều ảnh hưởng đến kết quả. Trình tạo SHA-512/256 băm một số được nhập dưới dạng văn bản theo biểu diễn ký tự của số đó. Ví dụ, 42, 042 và 42.0 là các đầu vào hoàn toàn không liên quan theo cách nhìn của thuật toán.

Các ký tự có dấu và ký tự ngoài bảng chữ cái Latinh trước hết phải được mã hóa thành byte, thường là bằng UTF-8. Hai chuỗi trông giống nhau vẫn có thể tạo ra mã băm khác nhau nếu chúng dùng các biểu diễn Unicode khác nhau. Một chữ cái có dấu có thể được lưu dưới dạng một điểm mã duy nhất hoặc một chữ cái cơ sở theo sau bởi dấu kết hợp. Trước khi so sánh mã băm SHA-512/256 từ công cụ này với kết quả của hệ thống khác, hãy chuẩn hóa văn bản theo cùng một cách.

Đầu vào rất dài vẫn chỉ tạo ra giá trị băm 256 bit. Đầu vào rỗng cũng có một giá trị băm SHA-512/256 xác định, dù trường để trống trên giao diện có thể được xử lý khác với chuỗi có độ dài bằng 0 được chủ động cung cấp. Dùng sai thuật toán, khác cách mã hóa và có khoảng trắng thông thường ở đầu hoặc cuối là những nguyên nhân phổ biến khiến tổng kiểm không khớp. Tab ẩn, khác biệt giữa ký tự kết thúc dòng của Windows và Unix, cũng như dấu cách không ngắt dòng được sao chép, cũng có thể gây sai lệch nếu xuất hiện trong đầu vào.

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

SHA-512/256 có giống SHA-256 không?

Không. Cả hai đều trả về giá trị băm 256 bit, nhưng SHA-256 dùng thiết kế nội bộ 32 bit, còn SHA-512/256 dùng thiết kế của SHA-512 với các giá trị khởi tạo riêng. Cùng một đầu vào sẽ tạo ra kết quả khác nhau khi dùng hai thuật toán này.

SHA-512/256 có phải chỉ là mã băm SHA-512 được rút ngắn không?

Không. SHA-512/256 bắt đầu bằng các giá trị băm khởi tạo khác, vì vậy đầu ra của nó không phải là 256 bit đầu tiên của một giá trị băm SHA-512 thông thường. Do đó, việc cắt ngắn SHA-512 sẽ không vượt qua các bước kiểm tra tương thích yêu cầu SHA-512/256.

Viết chữ cái thập lục phân hoa hay thường có làm thay đổi mã băm không?

Với một giá trị băm SHA-512/256, ký tự thập lục phân viết hoa và viết thường có thể biểu diễn cùng một dãy byte. Tuy nhiên, cơ sở dữ liệu hoặc phép so sánh chuỗi có phân biệt chữ hoa chữ thường có thể coi các dạng biểu diễn này là khác nhau. Vì vậy, hãy thống nhất một định dạng trong toàn bộ hệ thống.

Hai đầu vào khác nhau có thể tạo ra cùng mã băm SHA-512/256 không?

Về lý thuyết là có, vì vô số đầu vào có thể có được ánh xạ vào một số lượng đầu ra hữu hạn. Một cặp như vậy được gọi là va chạm. Hiện chưa có phương pháp tấn công va chạm khả thi nào được biết đến đối với SHA-512/256, nhưng ứng dụng không nên giả định rằng mỗi kết quả là duy nhất về mặt toán học.

Có thể dùng SHA-512/256 làm mã xác thực thông điệp không?

Đừng tạo MAC bằng cách đặt một bí mật trước thông điệp rồi băm phần văn bản đã ghép. Khi cần xác thực bằng khóa bí mật, hãy dùng cách triển khai HMAC-SHA-512/256 theo tiêu chuẩn.

Kiểm tra lần cuối

Trước khi so sánh giá trị băm từ công cụ này, hãy xác nhận rằng giá trị còn lại cũng dùng SHA-512/256, cùng cách mã hóa đầu vào và cùng định dạng thập lục phân. Xóa dấu cách hoặc ký tự xuống dòng ngoài ý muốn, nhưng đừng thay đổi văn bản nếu những ký tự đó vốn thuộc nội dung. Với đầu vào nhạy cảm, hãy nhớ rằng công cụ xử lý giá trị trên máy chủ qua HTTPS, dù giá trị đó không được lưu trữ.

Công cụ phổ biến