Mã hóa và giải mã văn bản, tệp

Khóa văn bản hoặc tệp bằng mật khẩu (AES-256-GCM) và mở khóa lại.

Nếu quên mật khẩu, dữ liệu không thể khôi phục. Không ai đặt lại được.

Công cụ này làm gì

Công cụ khóa một đoạn văn bản hoặc cả một tệp bằng mật khẩu, và mở lại khi bạn nhập đúng mật khẩu đó. Người không có mật khẩu không đọc được nội dung, kể cả khi họ có trong tay văn bản hay tệp đã mã hóa. Công cụ dùng AES-256-GCM, một thuật toán chuẩn, với khóa tạo từ mật khẩu bằng PBKDF2-SHA-256 qua 600.000 vòng. Mọi thứ chạy trong trình duyệt nhờ chức năng Web Crypto có sẵn: văn bản, tệp và mật khẩu của bạn không được gửi đi đâu cả.

Cách dùng

  1. Chọn Mã hóa, gõ hoặc dán văn bản, hoặc bấm "Mã hóa một tệp" (hay kéo tệp vào trang).
  2. Nhập mật khẩu và nhập lại lần nữa, vì gõ nhầm sẽ khóa dữ liệu vĩnh viễn.
  3. Bấm Mã hóa. Với văn bản, bạn nhận một chuỗi chữ, số, gạch ngang và gạch dưới (Base64URL) để sao chép vào ghi chú hoặc tin nhắn. Với tệp, bạn tải về một tệp .enc.
  4. Để mở khóa, chọn Giải mã, dán văn bản (hoặc mở tệp .enc), nhập mật khẩu rồi bấm Giải mã. Tệp trở lại với tên gốc và từng byte nguyên vẹn.

Bên trong hoạt động thế nào

Mỗi lần mã hóa, công cụ lấy một salt ngẫu nhiên 16 byte và một nonce ngẫu nhiên 12 byte từ bộ sinh số ngẫu nhiên an toàn của trình duyệt. PBKDF2-SHA-256 biến mật khẩu và salt thành khóa 256 bit qua 600.000 vòng, đúng con số hướng dẫn lưu mật khẩu của OWASP nêu cho hàm này. AES-256-GCM mã hóa dữ liệu và thêm thẻ xác thực 16 byte. Phần đầu 36 byte (dấu "ENC", phiên bản, số vòng, salt, nonce) cũng được xác thực, nên sửa bất kỳ byte nào cũng làm việc giải mã thất bại. Văn bản n byte thành n + 53 byte; chuỗi kết quả luôn bắt đầu bằng RU5DAQ.

Chọn mật khẩu

Mã hóa rất mạnh nên mật khẩu mới là điểm yếu. PBKDF2 làm chậm mỗi lần đoán nhưng không chống được card đồ họa chuyên dụng tốt như các hàm mới, vì vậy độ dài là quan trọng nhất. Bốn từ ngẫu nhiên từ danh sách 7.776 từ cho khoảng 52 bit, năm từ khoảng 65 bit, sáu từ khoảng 78 bit. Một cụm từ dài dễ nhớ hơn và tốt hơn nhiều so với mật khẩu ngắn đầy ký hiệu. Bạn có thể tạo mật khẩu ngẫu nhiên bằng công cụ tạo mật khẩu. Mật khẩu được chuẩn hóa Unicode NFKC, nên dấu tiếng Việt gõ dạng dựng sẵn hay dạng tổ hợp đều cho cùng một khóa.

Giới hạn cần biết

Công cụ không thể khôi phục mật khẩu đã mất: không có bản sao khóa ở đâu cả. Độ dài kết quả vẫn lộ ra kích thước gần đúng của dữ liệu, và tên tệp tải về là tên gốc cộng .enc nên hãy đổi tên nếu tên nhạy cảm. Một máy dính keylogger vẫn đọc được những gì bạn gõ. Mã nguồn ngắn và đã kiểm tra bằng các vectơ thử đã công bố, nhưng chưa qua kiểm toán bảo mật độc lập, nên với bí mật quan trọng đến tính mạng hãy dùng phần mềm đã được kiểm toán. Kết quả chỉ mở được bằng định dạng này. Xem thêm công cụ Base64 và kiểm tra hash tệp.

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

Gõ mật khẩu vào một trang web có an toàn không?

Ở đây trang chạy ngay trong trình duyệt của bạn và không gửi văn bản, tệp hay mật khẩu đi đâu, cũng không lưu gì. Rủi ro còn lại nằm ở thiết bị của bạn: keylogger hoặc tiện ích trình duyệt đọc được trang có thể thấy những gì bạn gõ, ở bất kỳ trang nào. Hãy dùng thiết bị và trình duyệt bạn tin tưởng.

Tôi quên mật khẩu, lấy lại dữ liệu được không?

Không, và không ai làm được. Mật khẩu là thứ duy nhất tạo ra khóa và không bao giờ được lưu. Đó là cái giá của mã hóa mà không ai khác mở được, nên hãy lưu mật khẩu trong trình quản lý mật khẩu.

Vì sao sai mật khẩu và dữ liệu bị hỏng lại báo cùng một lỗi?

AES-GCM kiểm tra thẻ xác thực. Nếu khóa sai hoặc chỉ một bit dữ liệu bị đổi, phép kiểm tra thất bại như nhau, nên công cụ không phân biệt được. Hãy kiểm tra mật khẩu trước, rồi kiểm tra văn bản đã được sao chép đầy đủ chưa.

Tệp tối đa bao nhiêu?

Tối đa 100 MB. AES-GCM mã hóa cả tệp một lượt nên trình duyệt giữ tệp và kết quả trong bộ nhớ cùng lúc. Tệp lớn hơn bị từ chối bằng thông báo thay vì làm treo tab.