Hash/Mật mã
AES Encrypt/Decrypt
Mã hóa và giải mã văn bản bằng AES-GCM hoặc AES-CBC bằng mật khẩu (khóa được suy ra qua PBKDF2).
AES is the standard for symmetric encryption: the same password is used to both encrypt and decrypt. This tool derives an encryption key from your password with PBKDF2 and encrypts text with AES-GCM or AES-CBC — all locally in your browser.
How to use it
- Encrypt: enter text and a password, pick a mode (GCM or CBC), and get an encrypted result along with the parameters (salt, IV) needed to decrypt it later.
- Decrypt: paste the encrypted text and the same password to get the original back.
- AES-GCM is the recommended default: it encrypts and verifies data integrity at the same time (authenticated encryption).
Common uses
- Encrypting sensitive text before storing it or sending it over an untrusted channel.
- Checking that an AES encryption implementation matches across different languages or libraries.
- A teaching example for understanding the difference between the GCM and CBC encryption modes.
Things to keep in mind
The IV (initialization vector) must be unique for every encryption performed with the same key — reusing a key+IV pair in GCM completely breaks the encryption's security.
AES-CBC without a separate integrity check (a MAC) is vulnerable to ciphertext-tampering attacks — that's why GCM, which combines encryption and authentication in one mode, is the safer default.
Bài viết về công cụ này: AES: mã hóa đối xứng hoạt động như thế nào
Câu hỏi thường gặp
AES ở đây hỗ trợ những kích thước khóa nào, và nên dùng khóa nào?
AES hỗ trợ khóa 128, 192 và 256-bit. AES-256 là khuyến nghị phổ biến cho ứng dụng mới, vì 128-bit đã được coi là an toàn, nhưng 256-bit mang lại biên độ an toàn thêm với chi phí thực tế không đáng kể.
Sự khác biệt giữa các chế độ mã hóa (như CBC, GCM) là gì?
GCM xác thực bản mã ngay khi mã hóa, nên cũng phát hiện được sự can thiệp, vì vậy đây là lựa chọn mặc định được khuyến nghị. CBC chỉ mã hóa và cần một MAC riêng để đảm bảo toàn vẹn, cùng với một IV ngẫu nhiên mỗi lần mã hóa để giữ an toàn.
Khóa hoặc văn bản gốc của tôi có được gửi đi đâu không?
Không. Toàn bộ việc mã hóa và giải mã chạy cục bộ trong trình duyệt của bạn thông qua Web Crypto API — không có gì được tải lên máy chủ.
Vì sao không nên dùng chế độ ECB?
ECB mã hóa từng khối một cách độc lập và giống hệt nhau, nên các khối văn bản gốc giống nhau cho ra các khối văn bản mã giống nhau — điều này để lộ cấu trúc dữ liệu (ví dụ các mẫu lặp lại trong hình ảnh vẫn có thể nhìn thấy ngay cả sau khi mã hóa). CBC hoặc GCM với IV duy nhất loại bỏ vấn đề này.
Điều gì xảy ra nếu dùng lại cùng một IV với cùng một khóa?
Đối với GCM đây là lỗi nghiêm trọng — việc dùng lại cặp khóa+IV làm mất hoàn toàn tính bảo mật và tính toàn vẹn của mã hóa. IV luôn phải là duy nhất cho mỗi lần mã hóa với cùng một khóa.