Trình tạo mã băm SRI
Tạo mã băm Subresource Integrity cho bất kỳ tệp JS hoặc CSS nào và nhận về thẻ script hoặc link sẵn sàng để dán.
🔒 Được xử lý hoàn toàn trong trình duyệt của bạn — không có nội dung nào bạn nhập ở đây được tải lên.
Kết quả
Subresource Integrity (SRI) cho phép trình duyệt xác minh rằng một tập lệnh hoặc biểu định kiểu được tải từ CDN hoặc bên thứ ba không bị thay đổi trước khi chạy — trình duyệt băm các byte đã tải xuống và từ chối thực thi tệp nếu mã băm không khớp với thuộc tính integrity bạn đã công bố. Công cụ này tính toán mã băm đó cho bất kỳ tệp JS hoặc CSS nào bạn thả vào, hoàn toàn bên trong tab trình duyệt của bạn, vì vậy tệp không bao giờ cần rời khỏi máy của bạn để được băm.
Một công cụ băm thông thường sẽ không tạo ra giá trị SRI dùng được: đặc tả yêu cầu mã băm được mã hóa base64, không phải chuỗi thập lục phân mà hầu hết các công cụ kiểm tra tổng xuất ra, và nó chỉ nhận dạng ba thuật toán — sha256, sha384 và sha512. Trình tạo mã này giới hạn lựa chọn thuật toán ở chính xác ba thuật toán đó và mã hóa kết quả theo đúng cách, sau đó tiến thêm một bước bằng cách soạn thẻ HTML hoàn chỉnh xung quanh nó, với trường giữ chỗ src hoặc href bạn có thể chỉnh sửa ngay tại chỗ trước khi sao chép.
Ở cấp độ kỹ thuật, tệp được đọc bằng File API, được băm bằng cài đặt crypto.subtle.digest() gốc, và các byte kết quả được chuyển đổi sang base64 theo các khối nhỏ thay vì bằng một thao tác trải rộng lớn duy nhất — một chi tiết quan trọng khi tệp JS đóng gói vượt quá khoảng một trăm nghìn byte, lúc đó các phương pháp chuyển đổi đơn giản có thể chạm đến giới hạn ngăn xếp lệnh gọi của trình duyệt.
sha384 được chọn mặc định vì đây là thuật toán thường được khuyến nghị nhất trong các ví dụ và tài liệu SRI, cân bằng giữa độ dài mã băm và khả năng chống đụng độ, nhưng sha256 và sha512 chỉ cách một cú nhấp chuột nếu quy trình xây dựng hoặc nhà cung cấp CDN yêu cầu khác.