Tạo hash văn bản và tệp

Tính mã băm từ văn bản hoặc tệp, rồi so với checksum được cung cấp. Chọn đúng thuật toán; kết quả trùng khớp không tự xác nhận nguồn phát hành đáng tin cậy.

HASH WORKSPACE

Tạo và so sánh mã băm

Nhập văn bản hoặc chọn tệp; phép tính của công cụ chạy trong trình duyệt.

Xử lý trong trình duyệt 5 thuật toán

Thuật toán băm

Dùng cùng thuật toán với checksum cần đối chiếu.

MD5 và SHA-1 chỉ nên dùng để đối chiếu checksum cũ; không dùng cho chữ ký mới hoặc chống giả mạo. Không dùng hash nhanh thuần để lưu mật khẩu.
Kiểu chữ kết quả
Ctrl + Enter để tạo hash
Sẵn sàng tạo hash trong trình duyệt
OUTPUT

Kết quả hash 0

Tạo và đối chiếu hash trong 3 bước

01

Nhập văn bản hoặc chọn tệp

Văn bản được chuyển thành byte UTF-8. Với tệp, công cụ dùng byte gốc và nhận tệp tối đa 200 MB; tệp lớn cần đủ bộ nhớ trình duyệt.

Chọn thuật toán để đối chiếu

Nếu nơi cung cấp tệp đã công bố checksum, hãy chọn đúng tên thuật toán trong bản công bố. Độ dài chuỗi hex giúp nhận diện ứng viên, nhưng không tự xác nhận nguồn gốc checksum.

Thuật toánĐộ dài hexCách dùng
MD5 / SHA-132 / 40Đối chiếu checksum cũ; tránh dùng cho thiết kế bảo mật mới.
SHA-25664Đối chiếu checksum SHA-256 do nguồn đáng tin cậy công bố.
SHA-384 / SHA-51296 / 128Dùng khi checksum tham chiếu ghi đúng thuật toán này.

Nếu checksum không khớp

Sai thuật toán
Đối chiếu đúng MD5, SHA-1, SHA-256, SHA-384 hoặc SHA-512 như nguồn tham chiếu nêu. Nút So sánh chỉ đối chiếu với những kết quả đã tính.
Tệp hoặc văn bản khác byte
Tải lại đúng tệp. Với văn bản, dấu cách, xuống dòng và dạng mã hóa UTF-8 đều ảnh hưởng kết quả.
Tệp quá lớn hoặc lỗi bộ nhớ
Giới hạn chọn tệp là 200 MB. Công cụ đọc toàn bộ tệp vào bộ nhớ trước khi tính hash, nên thiết bị ít RAM có thể gặp lỗi dù tệp dưới mức này.

Ý nghĩa và giới hạn của hash

Mã băm là dấu so sánh của dữ liệu, không phải mã hóa hay chữ ký số. Một kết quả khớp cho thấy dữ liệu có cùng digest với checksum đã dán; nếu cả tệp lẫn checksum đến từ nguồn bị giả mạo, phép so không phát hiện được. Mã công cụ đọc đầu vào và tính hash trong trình duyệt, không có lệnh tải tệp lên máy chủ. Không dùng MD5, SHA-1 hoặc hash nhanh thuần để lưu mật khẩu; xem hướng dẫn lưu mật khẩu của OWASP. OWASP.

Bình luận & góp ý

Đánh giá

Đang tải đánh giá…

Viết bình luậnKhông cần đăng nhập

Không chia sẻ mật khẩu, thông tin nhạy cảm hoặc nội dung tệp đang xử lý.

Duyệt trước khi đăng. Email không công khai.

Nhúng công cụ này vào website của bạnMiễn phí · Sao chép một lần, công cụ tự cập nhật

Dán iframe vào HTML, WordPress hoặc nền tảng hỗ trợ nhúng. Công cụ chạy trong trình duyệt người dùng; bạn có thể chỉnh chiều cao và giao diện.

Xem hướng dẫn nhúng công cụ và các nền tảng hỗ trợ →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/vi/hash-generator/" title="Tạo Hash — KitoTool" width="100%" height="1100" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Công cụ miễn phí bởi <a href="https://kitotool.com/vi/tao-hash/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

Mã có dòng ghi nguồn hiển thị dưới iframe; liên kết được đánh dấu nofollow theo hướng dẫn cho widget phân phối rộng.

Tùy chọn: tự điều chỉnh chiều cao iframe

Thêm đoạn mã này một lần trên trang chứa iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>