logo
GeekFormat

Mã hóa và giải mã AES

Please read before use

This tool runs entirely in your browser. No plaintext, ciphertext, or key is sent to a server.

It is intended for development, debugging, learning and self-managed scenarios. Do not use this page as the only protection for production secrets, customer data, or anything that requires auditing.

For real applications: use audited libraries (libsodium, OpenSSL, AWS Encryption SDK), a real KDF (Argon2id ≥ 1 iteration / 64 MiB), AEAD modes only, and manage keys on the server with proper access control.

Chế độ thuật toán
Độ dài khóa
Định dạng bản mã (đầu ra mã hóa / đầu vào giải mã)
Key source
Bản rõ

Văn bản UTF-8

Mode comparison — GCM vs CBC vs CTR
ModeAuthenticationIV requirementPerformanceRecommended use
AES-GCMYes (AEAD, 128-bit tag)12 bytes (recommended); never reuse with same keyFast, hardware-acceleratedDefault — modern API, file encryption, anything authenticated
AES-CBCNo — must add HMAC/MAC16 bytes; unpredictable (CSPRNG) and never reuseFast, hardware-acceleratedLegacy TLS, disk encryption (XTS-AES), never use raw for new designs
AES-CTRNo — must add HMAC/MAC16 bytes; never reuse with same key (catastrophic if reused)Fastest, parallelizableRandom-access streams, disk encryption, but combine with MAC

Reading the table

  • AES-GCM is the only AEAD among the three — it both encrypts and authenticates in one step. If you don't know which to choose, choose GCM.
  • CBC and CTR only provide confidentiality. They need a separate MAC (HMAC-SHA256, compute-then-MAC) or they are vulnerable to chosen-ciphertext and bit-flipping attacks.
  • Both IV and nonce must be unique per (key, message). GCM with a reused IV leaks the authentication key — treat as catastrophic.

Ghi chú về chế độ và định dạng

  • SubtleCrypto của trình duyệt chỉ cung cấp GCM, CBC và CTR cho AES — không có ECB, CFB hay OFB (để tránh cách dùng yếu). Nếu cần chế độ khác, hãy dùng OpenSSL hoặc thư viện phía máy chủ.
  • Định dạng bản mã tùy chọn: Hex / Base64 / Base64URL, tương thích với CyberChef, API, JWT, v.v. Cả hai phía (mã hóa và giải mã) phải chọn cùng một định dạng.
  • Trong AES-GCM, đầu ra là luồng byte liên tục «bản mã + thẻ xác thực»; công cụ mã hóa toàn bộ khối theo định dạng đã chọn — dán toàn bộ khối khi giải mã.

Ghi chú

  • Web Crypto chạy hoàn toàn trong trình duyệt; GCM là mã hóa xác thực, phù hợp cho các tình huống mặc định.
  • Khi mã hóa, để IV trống: công cụ sẽ sinh IV ngẫu nhiên và điền vào ô trên để tái sử dụng khi giải mã.
  • Khi giải mã, để IV trống sẽ thử vector toàn 0 (chỉ hợp lệ khi phía kia dùng cùng quy ước).

Công cụ online miễn phí để mã hóa và giải mã AES với AES-CBC, AES-GCM và AES-CTR. Hỗ trợ khóa AES-128/192/256, định dạng ciphertext Hex/Base64/Base64URL, dẫn xuất khóa từ mật khẩu bằng PBKDF2-SHA256, tạo IV/salt ngẫu nhiên và xử lý Web Crypto hoàn toàn trong trình duyệt.

Đề xuất Liên quan

Trường hợp sử dụng

  • Mã hóa một đoạn văn bản ngắn bằng AES-GCM trước khi chia sẻ qua kênh được kiểm soát
  • Giải mã API payload trong quá trình tích hợp frontend-backend khi cần so sánh IV, khóa, chế độ và định dạng đầu ra
  • Kiểm tra backend trả về ciphertext ở dạng Hex, Base64 hay Base64URL và tái tạo cùng định dạng đó trong trình duyệt
  • Tạo khóa AES dẫn xuất bằng PBKDF2 từ mật khẩu để hiểu salt, số vòng lặp và hành vi kích thước khóa dẫn xuất
  • So sánh song song đầu ra AES-CBC, AES-GCM và AES-CTR trong khi học sự khác nhau giữa các chế độ mã hóa đối xứng
  • Tạo test vectors xác định bằng cách cố định khóa, IV, salt, plaintext, chế độ, kích thước khóa và output encoding

Tính năng

  • Ba chế độ mã hóa: AES-CBC, mã hóa có xác thực AES-GCM và AES-CTR cho các tình huống mã hóa phổ biến
  • Ba kích thước khóa: AES-128, AES-192 và AES-256, trong đó AES-256 là lựa chọn mặc định mạnh nhất
  • Mã hóa dựa trên mật khẩu: dẫn xuất khóa AES bằng PBKDF2-SHA256 với 100.000 vòng lặp thay vì dùng trực tiếp mật khẩu thô yếu
  • Kiểm tra độ mạnh mật khẩu theo thời gian thực: độ dài, chữ hoa, chữ thường, chữ số, ký hiệu và mật khẩu phổ biến giúp người dùng chọn mật khẩu an toàn hơn
  • Tạo IV và salt ngẫu nhiên: một cú nhấp tạo giá trị IV/salt ngẫu nhiên theo chuẩn mật mã và điền lại vào giao diện để có thể giải mã lặp lại
  • Nhiều định dạng ciphertext: Hex, Base64 và Base64URL cho debug API, truyền dữ liệu kiểu JWT, tệp cấu hình và khả năng tương thích dòng lệnh
  • Xử lý authentication tag của GCM: công cụ đóng gói ciphertext + auth tag và báo lỗi xác minh khi ciphertext, khóa, IV hoặc salt không khớp
  • Web Crypto chỉ trong trình duyệt: mã hóa và giải mã chạy cục bộ; plaintext, ciphertext, mật khẩu và khóa không bao giờ được tải lên
  • Hướng dẫn so sánh chế độ: ghi chú tích hợp giải thích khi nào nên chọn GCM, CBC hoặc CTR và vì sao tái sử dụng IV/nonce là nguy hiểm
  • Luồng sao chép thân thiện với lập trình viên: khóa được tạo, IV, salts, ciphertext và plaintext có thể được sao chép để kiểm thử API và xử lý sự cố

Cách Sử dụng

  1. Chọn chế độ mã hóa hoặc giải mã, sau đó chọn AES-GCM, AES-CBC hoặc AES-CTR cùng kích thước khóa bạn cần
  2. Dùng khóa Hex hoặc mật khẩu. Với chế độ mật khẩu, nhập mật khẩu mạnh và để PBKDF2 dẫn xuất khóa AES
  3. Chọn định dạng ciphertext: Hex, Base64 hoặc Base64URL. Giữ cùng định dạng ở cả phía mã hóa và giải mã
  4. Khi mã hóa, có thể để trống IV/salt để tự động tạo giá trị ngẫu nhiên an toàn; khi giải mã, dán lại cùng IV/salt hoặc dùng header được nhúng bởi chế độ mật khẩu
  5. Sao chép ciphertext hoặc plaintext đầu ra và lưu kèm chế độ, kích thước khóa, IV, salt và định dạng để có thể giải mã lặp lại

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

AES-CBC, AES-GCM và AES-CTR khác nhau như thế nào?

CBC là chế độ khối cổ điển, cần IV và cần thêm một MAC riêng để bảo đảm tính toàn vẹn. GCM là mã hóa có xác thực (AEAD), có thể phát hiện dữ liệu bị sửa đổi, nên thường là lựa chọn mặc định được khuyến nghị cho API hiện đại. CTR biến AES thành chế độ giống stream, nhanh và dễ song song hóa, nhưng vẫn cần MAC riêng. Nếu chưa chắc nên chọn gì, hãy chọn GCM.

Dẫn xuất khóa PBKDF2 là gì và vì sao cần dùng?

PBKDF2 chuyển mật khẩu do con người nhập thành khóa mã hóa mạnh hơn. Công cụ này dùng PBKDF2-SHA256 với 100.000 vòng lặp và salt ngẫu nhiên cho mỗi lần mã hóa. So với việc dùng trực tiếp mật khẩu làm khóa, PBKDF2 khiến tấn công brute force tốn kém hơn và tránh việc các mật khẩu giống nhau tạo ra khóa dẫn xuất giống nhau.

Chế độ khóa Hex khác gì với chế độ mật khẩu?

Chế độ khóa Hex dùng khóa hexadecimal thô dài 32/48/64 ký tự, phù hợp khi bạn cần khớp với API backend hoặc một test vector cố định. Chế độ mật khẩu nhận một mật khẩu dễ nhớ rồi dùng PBKDF2 để dẫn xuất khóa AES, đồng thời nhúng hoặc mang theo thông tin salt để ciphertext có thể được giải mã sau này bằng cùng mật khẩu.

Kiểm tra độ mạnh mật khẩu đo những gì?

Công cụ kiểm tra độ dài mật khẩu, chữ hoa, chữ thường, chữ số, ký hiệu và các mẫu mật khẩu yếu thường gặp. Kết quả gợi ý mức yếu, tạm được, tốt hoặc mạnh để bạn tránh mật khẩu ngắn hay dễ đoán. Với dữ liệu nhạy cảm, hãy dùng mật khẩu dài và ngẫu nhiên do trình quản lý mật khẩu tạo ra.

Vì sao giải mã AES-GCM bị lỗi?

AES-GCM xác minh authentication tag. Lỗi thường có nghĩa là khóa hoặc mật khẩu sai, IV hoặc salt không khớp, ciphertext đã bị sửa đổi, định dạng đầu ra bị giải mã sai, hoặc bạn đã chọn chế độ AES/kích thước khóa khác. Mọi tham số từ bước mã hóa phải khớp chính xác khi giải mã.

Công cụ AES online này có an toàn không?

Các thao tác mật mã chạy bằng Web Crypto API ngay trong trình duyệt, và trang không tải plaintext, ciphertext, mật khẩu hay khóa lên máy chủ. Công cụ phù hợp cho phát triển, debug API và học tập. Với dữ liệu production rất nhạy cảm, hãy dùng công cụ local hoặc server-side đã được kiểm toán cùng quy trình quản lý khóa đúng chuẩn.

Công cụ hỗ trợ những độ dài khóa AES nào?

Công cụ hỗ trợ AES-128 (khóa 16 byte), AES-192 (khóa 24 byte) và AES-256 (khóa 32 byte). AES-256 là lựa chọn mạnh nhất và thân thiện làm mặc định; AES-128 vẫn an toàn và có thể nhanh hơn; AES-192 thường dùng cho yêu cầu tuân thủ hoặc tương thích cụ thể.

Đầu ra Hex, Base64 và Base64URL khác nhau thế nào?

Hex dễ đọc và dễ debug nhưng kích thước lớn hơn. Base64 gọn hơn và phổ biến trong JSON hoặc tệp cấu hình. Base64URL thay thế các ký tự bất tiện trong URL và bỏ padding, nên phù hợp với tham số URL, trường kiểu JWT và truyền dữ liệu trên web.

Làm sao giải mã ciphertext được tạo bởi công cụ này?

Trong chế độ mật khẩu, salt và IV được đưa vào header của đầu ra đã encode, và công cụ có thể trích xuất chúng khi giải mã. Trong chế độ khóa Hex, hãy giữ lại khóa, IV, chế độ, kích thước khóa và định dạng đầu ra từ bước mã hóa, rồi nhập đúng các giá trị đó khi giải mã.

Tôi có thể dùng công cụ này để học mã hóa AES không?

Có. Bạn có thể chuyển đổi giữa GCM, CBC và CTR, so sánh các định dạng đầu ra, xem IV và salt ảnh hưởng đến kết quả thế nào, và quan sát PBKDF2 dẫn xuất khóa từ mật khẩu ra sao. Đây là cách thực tế để hiểu hành vi của AES trước khi triển khai trong mã ứng dụng.

Mã hóa và giải mã AES là gì?

AES (Advanced Encryption Standard) là thuật toán mã khối đối xứng hiện đại được trình duyệt, TLS stack, cơ sở dữ liệu, dịch vụ đám mây, ứng dụng di động và hệ điều hành dùng để bảo vệ dữ liệu bằng cùng một khóa bí mật cho cả mã hóa và giải mã. Một thiết lập AES đúng không chỉ phụ thuộc vào khóa, mà còn phụ thuộc vào chế độ, IV/nonce, cách xử lý padding hoặc tag, và cách encode đầu ra.

AES-GCM là lựa chọn mặc định được khuyến nghị cho thiết kế mới vì đây là AEAD: nó vừa mã hóa dữ liệu vừa xác thực dữ liệu cùng lúc. Điều đó có nghĩa là giải mã sẽ thất bại nếu ciphertext, khóa, IV, salt hoặc authentication tag bị thay đổi. CBC và CTR chỉ cung cấp tính bí mật, nên trong giao thức production cần kết hợp với MAC riêng như HMAC-SHA256.

Mã hóa dựa trên mật khẩu cần một hàm dẫn xuất khóa. Mật khẩu do con người đặt hiếm khi đủ ngẫu nhiên để dùng trực tiếp làm khóa AES, vì vậy công cụ này dùng PBKDF2-SHA256 với 100.000 vòng lặp và salt ngẫu nhiên để dẫn xuất khóa AES thực sự. Salt ngăn mật khẩu giống nhau tạo ra khóa dẫn xuất giống nhau và làm tăng chi phí của tấn công brute force.

Việc xử lý IV và nonce cực kỳ quan trọng. GCM thường dùng IV 12 byte và tuyệt đối không được dùng lại cùng IV với cùng một khóa. CBC dùng IV 16 byte không thể dự đoán. CTR dùng cấu trúc counter/nonce và việc tái sử dụng có thể gây hậu quả nghiêm trọng. Công cụ này tự động tạo IV an toàn khi mã hóa và hiển thị giá trị đó để quá trình giải mã có thể tái tạo cùng bộ tham số.

Trang này được thiết kế cho phát triển, debug, học tập và các bài kiểm thử mã hóa tự quản lý. Với bí mật production, dữ liệu chịu quy định hoặc thông tin khách hàng, hãy dùng thư viện mật mã đã được kiểm toán, quản lý khóa phía server, kiểm soát truy cập, audit logs và KDF hiện đại như Argon2id khi phù hợp.