⚷ HolyCipher — Hand-Rolled AES-256 Encryption Zero Dependencies

═══ 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
HolyCipher | Ready Zewp.com | Zero Deps | ✝