Trình tạo Hash

Nhập văn bản bên dưới để tạo cùng lúc hash SHA-1, SHA-256, SHA-384 và SHA-512, hoặc cung cấp một khoá để ký bằng HMAC. Sử dụng Web Crypto API. Mọi xử lý đều diễn ra cục bộ trong trình duyệt của bạn.

Về hàm băm

Hàm băm mật mã nhận một đầu vào và tạo ra một chuỗi byte có kích thước cố định. Đầu ra (hash) là duy nhất cho mỗi đầu vào - ngay cả một thay đổi nhỏ cũng tạo ra hash hoàn toàn khác.

  • SHA-1 - 160-bit, không còn được khuyến nghị cho bảo mật. Vẫn được sử dụng trong Git.
  • SHA-256 - 256-bit, thuộc họ SHA-2. Được khuyến nghị cho sử dụng chung.
  • SHA-384 - 384-bit, thuộc họ SHA-2. Biến thể rút gọn của SHA-512.
  • SHA-512 - 512-bit, thuộc họ SHA-2. Hàm băm tiêu chuẩn mạnh nhất.

Mọi bản tóm tắt trên trang này đều đến từ chính Web Crypto API của trình duyệt, kể cả chữ ký HMAC. Không có gì được tự viết tay và không có gì được tải lên.

Hai thiết lập thay đổi kết quả nhiều hơn người ta tưởng. Bộ ký tự quyết định những byte nào được băm, nên cùng một câu sẽ cho bản tóm tắt khác nhau ở UTF-8 và Windows-1252. Thiết lập ký tự xuống dòng quan trọng với mọi thứ lấy ra từ tệp, vì bản tóm tắt tính trên CRLF sẽ không bao giờ khớp với bản tính trên LF. Dán một tổng kiểm tra vào ô so sánh và trang sẽ cho biết nó đến từ cái nào trong bốn cái, cách nhanh nhất để nhận ra một giá trị băm không nhãn.

Bạn thật sự đang lưu cái đó thế nào?

Hàm băm, token và mật khẩu chỉ mạnh bằng đúng đoạn mã bao quanh chúng: một hệ số chi phí để nguyên mặc định, một token không ai kiểm tra hạn, một khoá bí mật lỡ đẩy lên kho mã. Chúng tôi rà soát và làm cứng ứng dụng, rồi nói cho bạn biết kẻ tấn công chạm tới đâu trước tiên.

Đặt lịch rà soát bảo mật

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

Vì sao giá trị băm của tôi khác với công cụ khác?
Gần như luôn là vì các byte khác nhau, chứ không phải thuật toán. Một dấu xuống dòng ở cuối, CRLF thay vì LF, hay văn bản mã hoá bằng Windows-1252 thay vì UTF-8 đều làm đầu vào đổi và do đó bản tóm tắt cũng đổi. Các tuỳ chọn bộ ký tự và ký tự xuống dòng trên trang này có mặt chính là để làm rõ những khác biệt ấy.
MD5 đi đâu rồi?
Nó đã bị bỏ đi. MD5 có những tấn công va chạm khả thi, nên chẳng chứng minh được gì về một tệp mà kẻ tấn công có thể đã chạm vào, và giao diện mật mã của trình duyệt cũng không cung cấp nó, nghĩa là phải mang theo một bản cài đặt viết tay ngay trong trang. Với mọi thứ làm mới, SHA-256 là mặc định hợp lý.
HMAC là gì và khi nào tôi cần?
HMAC trộn một bí mật dùng chung vào bản tóm tắt, nên chỉ ai giữ khoá mới tạo hoặc kiểm tra được. Hãy dùng nó cho chữ ký webhook và ký các yêu cầu API, nơi mà giá trị băm thường chẳng chứng minh được gì vì ai cũng tính được trên cùng một phần thân.
Thật ra tôi nên dùng cái nào?
SHA-256, trừ khi bạn có lý do khác. SHA-512 không mạnh hơn đáng kể cho phần lớn mục đích và lại nhanh hơn trên phần cứng 64 bit, nên cũng là một mặc định hợp lý. SHA-1 có mặt ở đây vì rất nhiều phần mềm cũ vẫn sinh ra nó, chứ không phải vì được khuyến nghị: nó có tấn công va chạm khả thi và không nên dùng để canh giữ thứ gì.
Văn bản của tôi có tới máy chủ của các bạn không?
Không. Mọi bản tóm tắt đều được tính trong trình duyệt của bạn, bốn trong số đó do chính giao diện mật mã của trình duyệt đảm nhiệm. Không có gì bạn gõ vào bị tải lên, nhờ vậy bạn yên tâm băm một token, một tệp cấu hình hay bất cứ thứ gì bạn không muốn dán vào dịch vụ từ xa.