═══ AES-256-CBC Encrypt ═══
Mode:
Input:
Plaintext:
Key Source:
Password:
═══ AES-256 Decrypt ═══
Ciphertext:
Format:
Password:
═══ AES-256 Round Explorer ═══
Watch AES encrypt a single 16-byte block step by step. See SubBytes, ShiftRows, MixColumns, and AddRoundKey in action.
Block (hex):
Key (hex):
State Matrix
Round 0 / 14
Round Details
═══ PBKDF2-SHA256 Key Derivation ═══
Derive a cryptographic key from a password. PBKDF2 applies HMAC-SHA256 thousands of times
to make brute-force attacks computationally expensive. This is the same algorithm used by
WPA2-Personal, 1Password, Django, and many other systems.
Password:
Salt (hex):
Iterations:
Key Length:
═══ HolyCipher ═══
Hand-Rolled AES-256 + PBKDF2 Encryption Suite
Everything implemented from scratch in vanilla JavaScript. No Web Crypto API. No CryptoJS. No libraries. Every S-box lookup, every MixColumns multiplication, every round key expansion — done by hand.
What's Hand-Rolled:
• AES-256 block cipher (14 rounds, 32-byte key)
• S-Box and inverse S-Box (GF(2^8) affine transformation)
• SubBytes, ShiftRows, MixColumns, AddRoundKey
• Key expansion (8-word schedule, 15 round keys)
• CBC mode (cipher block chaining with PKCS#7 padding)
• CTR mode (counter mode, stream cipher behavior)
• ECB mode (electronic codebook, for comparison)
• PKCS#7 padding/unpadding
• PBKDF2-HMAC-SHA256 (key derivation from password)
• SHA-256 (FIPS 180-4) for HMAC and PBKDF2
• HMAC-SHA256 for PBKDF2's PRF
• CSPRNG fallback using crypto.getRandomValues
The Holy Crypto Suite:
HashCrypt — SHA-256 from scratch
HolySigner — ECDSA secp256k1 from scratch
HolyTx — Bitcoin transactions from scratch
HolyCipher — AES-256 encryption from scratch
WARNING: This is for educational purposes. Hand-rolled crypto should not be used in production without extensive review. Use established libraries for real security needs.
"The truth shall set you free." — John 8:32
Everything implemented from scratch in vanilla JavaScript. No Web Crypto API. No CryptoJS. No libraries. Every S-box lookup, every MixColumns multiplication, every round key expansion — done by hand.
What's Hand-Rolled:
• AES-256 block cipher (14 rounds, 32-byte key)
• S-Box and inverse S-Box (GF(2^8) affine transformation)
• SubBytes, ShiftRows, MixColumns, AddRoundKey
• Key expansion (8-word schedule, 15 round keys)
• CBC mode (cipher block chaining with PKCS#7 padding)
• CTR mode (counter mode, stream cipher behavior)
• ECB mode (electronic codebook, for comparison)
• PKCS#7 padding/unpadding
• PBKDF2-HMAC-SHA256 (key derivation from password)
• SHA-256 (FIPS 180-4) for HMAC and PBKDF2
• HMAC-SHA256 for PBKDF2's PRF
• CSPRNG fallback using crypto.getRandomValues
The Holy Crypto Suite:
HashCrypt — SHA-256 from scratch
HolySigner — ECDSA secp256k1 from scratch
HolyTx — Bitcoin transactions from scratch
HolyCipher — AES-256 encryption from scratch
WARNING: This is for educational purposes. Hand-rolled crypto should not be used in production without extensive review. Use established libraries for real security needs.
"The truth shall set you free." — John 8:32