Tới nội dung chính
Toolbase

Tạo mã băm

Tính SHA-1, SHA-256, SHA-384 và SHA-512 cho văn bản hoặc tệp.

Chạy hoàn toàn trong trình duyệt

Việc băm chạy ngay trong trình duyệt bằng API mã hoá có sẵn. Tệp bạn mở được đọc tại chỗ và không bao giờ được tải lên.

Giá trị băm là dấu vân tay có độ dài cố định của một khối dữ liệu. Chỉ cần đổi một byte ở bất kỳ đâu trong tệp là dấu vân tay đổi hoàn toàn, và chính điều đó khiến nó hữu ích cho đúng một câu hỏi hẹp: cái này có giống cái kia không?

Tìm hiểu thêm về Tạo mã băm

Câu hỏi ấy xuất hiện nhiều hơn người ta tưởng. Trang tải phần mềm in kèm một mã SHA-256 bên cạnh bộ cài để bạn phân biệt được bản tải lỗi với bản tải trọn vẹn. Hệ thống triển khai so sánh giá trị băm để biết bản dựng có thực sự thay đổi hay không. Thuộc tính subresource integrity trong trang HTML ghim một tệp script vào đúng một phiên bản, và trình duyệt sẽ từ chối chạy nếu tệp đó bị sửa.

Công cụ này tính SHA-1, SHA-384, SHA-512 và SHA-256 cho thứ bạn đưa vào — văn bản gõ trực tiếp hoặc một tệp bạn mở — rồi hiện cả bốn cùng lúc, ở dạng hex và Base64. Bạn cần loại nào là tuỳ theo hướng dẫn bạn đang làm theo, nên tính hết vẫn nhanh hơn bắt bạn đoán rồi chạy lại.

Nó cũng đối chiếu giùm bạn luôn. Dán giá trị băm bạn nhận được vào ô kiểm tra, công cụ sẽ cho biết đó là của thuật toán nào và có khớp hay không — đáng tin hơn nhiều so với việc đưa mắt dò sáu mươi tư ký tự hex trên hai màn hình. Dấu hai chấm, khoảng trắng hay tiền tố `sha256:` đều được chấp nhận, vì thực tế giá trị băm đến tay ta ở đủ dạng như vậy.

Mọi thứ diễn ra ngay trong trang này. `crypto.subtle` là API của trình duyệt, nên tệp bạn mở được đọc vào bộ nhớ ở đây và băm ở đây; nó không hề được tải lên, và cũng vì thế giới hạn với tệp lớn nằm ở máy bạn chứ không nằm ở đường truyền.

  • Tính cùng lúc SHA-1, SHA-256, SHA-384 và SHA-512, không phải chọn trước
  • Mỗi giá trị đều có dạng hex và Base64, sao chép được ngay
  • Băm một tệp bằng cách mở tệp — các byte không rời khỏi máy bạn
  • Ô kiểm tra cho biết khớp với thuật toán nào, không chỉ đúng hay sai
  • Chấp nhận giá trị băm có dấu hai chấm, khoảng trắng, tiền tố hay viết hoa thường
  • Mỗi thuật toán đều ghi rõ còn dùng được cho mục đích bảo mật hay không

Cách sử dụng

  1. 1Gõ hoặc dán văn bản của bạn, hoặc chuyển sang thẻ tệp rồi mở một tệp.
  2. 2Đọc bốn giá trị băm. Chuyển giữa hex và Base64 bằng các nút phía trên.
  3. 3Sao chép đúng giá trị mà hướng dẫn bạn đang làm theo yêu cầu.
  4. 4Muốn kiểm chứng, hãy dán giá trị băm bạn nhận được vào ô kiểm tra.
  5. 5Đọc kết quả: khớp thì công cụ gọi tên thuật toán, không khớp thì nói thẳng.

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

Vì sao ở đây không có MD5?

Trình duyệt không cài đặt MD5, nên muốn có nó thì phải kèm thêm một thư viện ngoài cho một thuật toán đã bị phá về va chạm từ năm 2004. Hãy dùng SHA-256, trừ khi có thứ bạn không đổi được bắt buộc phải dùng MD5.

SHA-1 còn dùng an toàn được không?

Không, nếu là chữ ký số hay chứng thư: người ta đã tạo được hai tệp có cùng SHA-1 và giờ việc đó rất rẻ. Nó vẫn ổn khi chỉ dùng làm checksum chống hỏng dữ liệu ngẫu nhiên, và đó là lý do git cùng nhiều trang tải về vẫn in ra SHA-1.

Băm có phải là mã hoá không?

Không: mã hoá thì giải ngược lại được nếu có khoá, còn băm thì một chiều theo thiết kế và không có gì để giải ngược cả. Không thể biến giá trị băm trở lại thành tệp gốc.

Vì sao hai công cụ cho tôi hai giá trị băm khác nhau cùng một đoạn văn bản?

Gần như luôn là do một dấu xuống dòng thừa ở cuối hoặc do kiểu xuống dòng khác nhau: băm là băm trên byte, nên một ký tự vô hình cũng làm đổi hết. Hãy so số byte trước khi kết luận công cụ nào sai.

Khi nào tôi cần dạng Base64?

Thuộc tính subresource integrity và vài tệp kê khai gói dùng Base64 thay vì hex. Vẫn là một giá trị băm ở dạng mã hoá ngắn hơn, nên hãy chọn đúng dạng mà nơi bạn điền vào yêu cầu.

Xem thêm Công cụ lập trình
Esc

16 kết quả