Verified interoperability fixture

AES-GCM and PBKDF2 test vectors

Reproduce one deterministic HashyTools AES v2 payload in Web Crypto, Node.js or Python. The fixed password, salt and IV are intentionally public and must never be reused for real encryption.

Expected values

Algorithm
AES-256-GCM
Key derivation
PBKDF2-HMAC-SHA-256, 600,000 iterations
Salt
AAECAwQFBgcICQoLDA0ODw
IV
EBESExQVFhcYGRob
Ciphertext
RHMOrWmrxxinybmJiaBZvVJ1upK0R6LOsEQ7nK3aNIDs
Authentication tag
FB4lQ7_1JwOHHcNHp-muOw

Verification method

  1. Decode every byte field from unpadded Base64URL.
  2. Derive a 256-bit key from the published passphrase, salt and iteration count.
  3. Join ciphertext and the 16-byte tag before Web Crypto decryption.
  4. Use the decoded AAD exactly as published and compare the plaintext byte-for-byte.

Expected plaintext: HashyTools AES-GCM v2 test vector

Reproducible evidence

The same fixture is decrypted during the automated unit suite. Any change to its ciphertext, tag, AAD or work factor fails authentication.

Last reviewed 2026-08-31 · Method: deterministic decryption in browser-compatible Web Crypto tests.

Raw key interoperability vector

The public raw-key vector records a fixed 256-bit test key, 12-byte IV, separate 16-byte tag, AAD and expected Unicode plaintext. Load it with “Load public test example” in the AES tool. These fixed values are only for reproducible tests; the tool generates a fresh IV for every encryption.

Reproduce the result in Node.js, the browser and Python. This vector is separate from the password-based v2 contract above.

Choose a developer tool

More tools for data, text and testing

Run the AES interoperability guide or read how these tools are checked.