Loading AES-GCM Tag Verify Tool...

How to Use AES-GCM Tag Verify Tool

Validate whether ciphertext, auth tag, nonce, key, and AAD are fully consistent before decryption.

Step 1

Paste Ciphertext and Auth Tag

Paste ciphertext and tag separately in HEX or Base64 format. This split is common in API responses and message brokers where tag is transmitted in a separate field. AES-GCM mode details are documented in NIST SP 800-38D.

Step 2

Set Key, Nonce, and AAD Correctly

Decryption only succeeds when key, nonce, AAD, ciphertext, and tag all match exactly. Even one byte change causes tag verification failure. Use AES key generation and nonce generation to create test vectors.

Step 3

Check Tag Length and Verify Output

Choose the same tag length used during encryption (typically 128-bit). If verification succeeds, plaintext is shown. If it fails, treat payload as untrusted and do not process it further.

Troubleshooting Checklist

- Confirm key length matches AES mode.
- Confirm nonce bytes and encoding are correct.
- Confirm AAD string/bytes are exactly same as sender.
- Confirm tag format and tag length match encryption side.
Step 4

Use with End-to-End AES Workflows

Use this page to isolate auth tag issues before debugging full encryption logic. Combine with AES-GCM Encrypt/Decrypt and HEX/Base64 conversion for full interoperability checks.

Frequently Asked Questions

What does GCM tag verification do?

It verifies ciphertext integrity and authenticity before plaintext is accepted.

Why does decryption fail when key is correct?

AAD, nonce, tag length, or ciphertext/tag encoding can still be wrong even with a correct key.

Is 12-byte nonce required?

12 bytes is standard and recommended, but some systems use different lengths with explicit handling.

Can I verify short tags like 96-bit?

Yes, if the sender used that tag length and both sides agree on the same configuration.

Should I continue on tag failure?

No. Tag failure means payload integrity cannot be trusted; reject it immediately.

How to debug interoperability quickly?

Start with a generated sample, then replace one field at a time (ciphertext, tag, nonce, key, AAD) to isolate mismatch.