Mã hóa và giải mã văn bản (AES-256-GCM bằng mật khẩu)

Mã hóa và giải mã văn bản bằng mật khẩu với AES-256-GCM và PBKDF2 ngay trong trình duyệt. Muối và nonce ngẫu nhiên, phát hiện chỉnh sửa, không gửi hay lưu gì.

  • Xử lý trên trình duyệt (không tải lên)
Chọn thao tác

Nên dùng cụm mật khẩu dài (từ 12 ký tự, tốt nhất gồm nhiều từ). Nếu quên mật khẩu thì không ai giải mã được.

Việc tạo khóa (PBKDF2-HMAC-SHA-256, 600.000 vòng lặp) có thể mất vài giây.

Cách sử dụng

  1. Chọn "Mã hóa", nhập văn bản và nhập mật khẩu hai lần.
  2. Nhấn "Mã hóa" để nhận chuỗi bắt đầu bằng "YT1.". Sao chép hoặc lưu lại, rồi gửi mật khẩu qua một kênh khác.
  3. Khi cần đọc, chọn "Giải mã", dán văn bản đã mã hóa, nhập mật khẩu và nhấn "Giải mã".

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

Văn bản hoặc mật khẩu có bị gửi đi đâu không?

Không. Việc mã hóa và giải mã diễn ra trên thiết bị này bằng Web Crypto API có sẵn trong trình duyệt. Văn bản, mật khẩu và kết quả không bao giờ được gửi đi, lưu lại hay ghi nhật ký; đóng trang là mọi thứ biến mất.

Quên mật khẩu thì có giải mã được không?

Không. Không có cơ chế khôi phục mật khẩu hay cửa hậu nào. Với nội dung quan trọng, hãy lưu mật khẩu ở nơi an toàn (như trình quản lý mật khẩu) trước khi mã hóa.

Mức độ an toàn ra sao?

Công cụ dùng mã hóa có xác thực AES-256-GCM. Khóa được tạo từ mật khẩu và muối ngẫu nhiên 16 byte bằng PBKDF2-HMAC-SHA-256 với 600.000 vòng lặp (mức OWASP khuyến nghị), và mỗi lần mã hóa dùng nonce ngẫu nhiên mới. Tuy vậy độ an toàn vẫn phụ thuộc vào mật khẩu: mật khẩu ngắn hoặc phổ biến có thể bị người có văn bản mã hóa đoán ra.

Vì sao giải mã thất bại?

Do mật khẩu khác (chữ hoa/thường, dấu cách, ký tự trông giống nhau đều tính), hoặc văn bản mã hóa đã bị sửa hay bị cắt mất. Xác thực AES-GCM phát hiện cả thay đổi một ký tự, khi đó không hiển thị bất kỳ nội dung nào.

Định dạng của văn bản mã hóa là gì?

"YT1.header.salt.nonce.ciphertext", mỗi phần là base64url không đệm. Header gồm 6 byte: mã thuật toán 1 = AES-256-GCM, mã KDF 1 = PBKDF2-HMAC-SHA-256, số vòng lặp dạng số 32 bit big-endian. Muối 16 byte, nonce 12 byte, phần mã hóa kết thúc bằng thẻ xác thực 16 byte. Mọi thứ trước dấu "." cuối cùng là dữ liệu xác thực bổ sung; mật khẩu là UTF-8 đã chuẩn hóa NFC, văn bản là UTF-8.

Có tương thích với OpenSSL hoặc GPG không?

Không trực tiếp, vì định dạng này là riêng của công cụ. Tuy nhiên nó chỉ dùng thuật toán chuẩn, nên có thể giải mã ở nơi khác nếu triển khai theo mô tả ở trên.

Lưu ý & giới hạn

  • Nội dung bạn nhập chỉ được xử lý trên trang này và không gửi đến máy chủ của YUCTS.
  • Nếu quên mật khẩu thì không ai giải mã được.
  • Mỗi lần mã hóa tối đa 100.000 ký tự văn bản. Không hỗ trợ mã hóa tệp.
  • Độ an toàn phụ thuộc vào độ mạnh của mật khẩu. Công cụ không bảo vệ được trước mã độc, phần mềm ghi phím trên thiết bị hay người nhìn trộm màn hình.
  • Kết quả dùng định dạng riêng của công cụ (YT1), không tương thích trực tiếp với OpenSSL hay GPG.
  • Văn bản và mật khẩu chỉ được xử lý trong trình duyệt, không bao giờ được gửi đi, lưu lại hay ghi nhật ký.

Nguồn dữ liệu