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)
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
- Chọn "Mã hóa", nhập văn bản và nhập mật khẩu hai lần.
- 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.
- 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
- OWASP Password Storage Cheat Sheet (PBKDF2-HMAC-SHA256: 600,000 iterations)(mở trong thẻ mới) — Ngày kiểm tra: 2026-10-31
- NIST SP 800-38D: Galois/Counter Mode (GCM)(mở trong thẻ mới) — Ngày kiểm tra: 2026-10-31
- RFC 8018: PKCS #5 v2.1 (PBKDF2)(mở trong thẻ mới) — Ngày kiểm tra: 2026-10-31
- RFC 4648 §5: Base 64 Encoding with URL and Filename Safe Alphabet(mở trong thẻ mới) — Ngày kiểm tra: 2026-10-31
- W3C Web Cryptography API(mở trong thẻ mới) — Ngày kiểm tra: 2026-10-31
Công cụ liên quan
- Tạo mật khẩu an toàn (ngẫu nhiên mật mã, không thiên lệch)Tạo mật khẩu ngẫu nhiên ngay trong trình duyệt bằng bộ sinh số ngẫu nhiên an toàn về mật mã (crypto.getRandomValues), không thiên lệch. Chọn độ dài, loại ký tự, loại bỏ ký tự dễ nhầm và xem entropy.
- Kiểm tra độ mạnh mật khẩu (mức dễ đoán và thời gian bẻ khóa)Ước tính mức độ dễ đoán của mật khẩu từ độ dài, loại ký tự, mật khẩu phổ biến, dãy phím, chuỗi và ngày tháng, kèm thời gian bẻ khóa. Chạy trong trình duyệt, không gửi hay lưu mật khẩu.
- Tạo và kiểm tra UUID (tạo hàng loạt UUID v4)Tạo cùng lúc tối đa 10.000 UUID ngẫu nhiên phiên bản 4 bằng crypto.randomUUID(), sao chép hoặc tải tệp TXT. Dán một UUID để xem phiên bản, biến thể và thời điểm được nhúng.
- Tính checksum tệp (SHA-256 / SHA-512)Tính giá trị băm SHA-256, SHA-512 của tệp hoặc văn bản ngay trong trình duyệt và đối chiếu với checksum đã công bố. Tệp không bị tải lên.
- Che dữ liệu cá nhân trong văn bảnTìm và che email, số điện thoại, số thẻ, My Number Nhật Bản, số căn cước Đài Loan, địa chỉ IP và URL trong văn bản. Xử lý hoàn toàn trên trình duyệt, không gửi đi và không lưu lại.
- Kiểm tra cấu trúc URL đáng ngờ (@, IP, Punycode, link rút gọn)Dán URL để liệt kê đặc điểm cấu trúc như mẹo dùng “@”, máy chủ là địa chỉ IP, Punycode và trộn hệ chữ, link rút gọn, phần mở rộng kép. Không mở liên kết và không kết luận an toàn hay không.