aes-encryption.com
English

AES · GCM / CBC / CTR

AES File Encryption & Decryption

Protect one local file, save the whole .aes.json package, and restore the original bytes with the same password.

Browser-local processing128 / 192 / 256No analytics inside encryption workspace
Processing locally…
Loading, copying or downloading blocked? Open the isolated workspace in a new tab. Inputs are not transferred. ↗

A recoverable package, not a renamed file

The file workflow uses AES-256-GCM and the same password derivation as text encryption. Before encryption, the original filename, MIME hint and byte length are placed in an internal record with the file bytes. That record is encrypted together; the public package does not expose the original filename.

Download writes encrypted.aes.json. Changing an extension does not encrypt a file, and copying only the ciphertext field loses the recovery metadata. Keep the downloaded package and your password separately. This is this site's versioned protocol, not a format that claims to open ZIP passwords, office document encryption or an arbitrary .aes file.

Encrypt, save and restore

  1. Choose Encrypt, select or drop one original file, and enter a password. Zero-byte files are supported.
  2. Run the operation. Processing occurs in a Worker; a busy state is shown instead of invented progress percentages.
  3. Download the complete package and keep a separate original until you have verified recovery.
  4. Choose Decrypt, import the package and enter the password. Download the restored file and verify its bytes before deleting any original.

Cancellation terminates the active Worker. Reselecting invalidates the old result; an older job must not replace a new selection. Clearing releases application references, but JavaScript memory cleanup is not a physical secure-erasure guarantee.

Limits and safe recovery

The original-file limit is 25 MiB. Encrypted JSON grows because Base64 needs roughly four characters for every three bytes, so package import is capped at 36 MiB. Web Crypto processes the message as a whole; this is not native streaming encryption and may use several copies in memory. Large mobile jobs can take longer.

The file page deliberately uses password-based GCM only. On recovery, filenames are sanitized to remove path separators and dangerous characters, and downloads use a generic binary MIME type. Authenticated recovery does not make the original file safe to execute. Do not import a package from an untrusted source expecting the tool to inspect its content for malware.

Technical references

Updated October 16, 2026

Popular guides

What is AES?GCM vs CBC vs CTRAES key sizesIVs and noncesAES vs RSAAES vs DESPadding explained

Frequently asked questions

Why is the encrypted file larger?

The package is JSON containing Base64 ciphertext, salt, nonce and parameters. Base64 expands the byte representation; encryption is not compression.

Can the original filename be seen in the package?

It is stored inside the encrypted internal file record, not in outer JSON. Normal hosting requests still reveal page-request metadata, not the selected file content.

Can I decrypt an arbitrary .aes file?

No. File mode imports this site's complete v1 .aes.json package. Other formats require their own documented envelope and key derivation.