Công cụ · chạy hoàn toàn trong trình duyệt
Đặt mật khẩu cho một file HTML bằng mã hóa AES-256. File tạo ra chỉ chứa chuỗi mã — xem mã nguồn, tắt JavaScript hay tải về mổ xẻ đều không đọc được gì nếu không có mật khẩu.
Trình duyệt chỉ cho phép mã hóa khi trang được mở qua https://. Hãy mở lại bằng địa chỉ https, hoặc tải file này về máy rồi mở trực tiếp.
Kéo thả vào ô dưới, hoặc bấm để chọn. File không đi đâu cả — trình duyệt đọc nó ngay trên máy bạn.
Độ dài quan trọng hơn ký tự lạ. Một câu tiếng Việt không dấu bốn năm từ vừa mạnh vừa dễ nhớ, hơn hẳn Abc123!@.
Đổi tên file tải về thành index.html rồi tải lên hosting của bạn. Giữ lại bản gốc — mất mật khẩu là không mở lại được.
Không. Trang này không có máy chủ xử lý. File và mật khẩu được đọc bằng JavaScript ngay trong trình duyệt, mã hóa xong thì trả ra file tải về. Cách tự kiểm chứng: mở tab Network của trình duyệt rồi bấm Khóa file — sẽ không có yêu cầu mạng nào. Chắc hơn nữa thì lưu trang này về máy, ngắt mạng, rồi dùng offline.
Nhiều hướng dẫn trên mạng chỉ so sánh mật khẩu rồi ẩn phần nội dung đi. Cách đó không bảo vệ gì cả — nội dung vẫn nằm nguyên trong file, chỉ cần xem mã nguồn hoặc tắt JavaScript là đọc được hết. Ở đây nội dung bị mã hóa thật, không có mật khẩu thì chỉ còn chuỗi ngẫu nhiên.
AES-256-GCM cho phần mã hóa, khóa sinh từ mật khẩu bằng PBKDF2-SHA256 với 310.000 vòng lặp — mức khuyến nghị của OWASP để chống dò mật khẩu. Mỗi lần khóa dùng một salt và IV ngẫu nhiên riêng. Tất cả chạy bằng Web Crypto API có sẵn trong trình duyệt.
Mất luôn nội dung. Không có cửa sau, không có khôi phục — đó chính là lý do nó an toàn. Luôn giữ một bản gốc chưa khóa ở máy hoặc trên đám mây trước khi tải bản đã khóa lên hosting.
Chỉ nhận file HTML đơn lẻ. Ảnh, CSS hay JavaScript nằm ở file riêng bên ngoài sẽ không được mã hóa — muốn kín hoàn toàn thì gộp hết vào một file. Trang khóa cần mở qua https:// mới giải mã được.