Crypto tools

91 tools

Encrypt, decrypt, sign, verify, hash and derive keys in your browser, through Web Crypto and audited libraries such as noble, scure and age for the algorithms Web Crypto does not cover. Keys are generated in the page and never leave it. The classical ciphers here are puzzle tools with no security value, and each one says so on its own page.

Encrypt & decrypt12

Keys & signatures17

·→1RSA key pair generateGenerate an RSA key pair, on your device; the private key never leaves your browser.Takes no filen→nRSA-PSS signSign a file with an RSA private key (RSA-PSS/SHA-256).Runs on each file you dropn→nRSA-PSS verifyCheck a file against an RSA signature (RSA-PSS/SHA-256).Runs on each file you drop·→1ECDSA key pair generateGenerate an ECDSA key pair, on your device; the private key never leaves your browser.Takes no filen→nECDSA signSign a file with an ECDSA private key.Runs on each file you dropn→nECDSA verifyCheck a file against an ECDSA signature.Runs on each file you drop·→1Ed25519 key pair generateGenerate an Ed25519 key pair, on your device; the private key never leaves your browser.Takes no filen→nEd25519 signSign a file with an Ed25519 private key.Runs on each file you dropn→nEd25519 verifyCheck a file against an Ed25519 signature.Runs on each file you drop·→1X25519 key pair generateGenerate an X25519 key pair for Diffie-Hellman key exchange, on your device; the private key never leaves your browser.Takes no file·→1X25519 derive shared secretDerive a shared secret from your X25519 private key and a peer's public key (Diffie-Hellman).Takes no file·→1age key pair generateGenerate an age identity (private key) and its matching recipient (public key), on your device; the identity never leaves your browser.Takes no file·→1BIP-39 mnemonic generateGenerate a random BIP-39 mnemonic seed phrase (English wordlist).Takes no filen→nBIP-39 mnemonic validateCheck a BIP-39 mnemonic seed phrase against the English wordlist and its checksum.Runs on each file you drop·→1Random bytesCryptographically strong random bytes from crypto.getRandomValues, formatted as hex or base64, a fresh CSPRNG draw every run, computed on your device.Takes no file·→1Shamir's Secret Sharing splitSplit a secret into N shares over GF(256) so that any K of them reconstruct it and fewer than K reveal nothing, computed on your device, nothing kept.Takes no file·→1Shamir's Secret Sharing combineCombine any K Shamir shares, in any order, to recover the original secret, computed on your device.Takes no file

Password hashing7

One-time codes3

Hashes & checksums11

1→1Generate all hashesCompute every hash-wasm digest of a file in one pass, on your device. (MurmurHash3 and the Fletcher checksums have their own dedicated tools.)Takes one filen→nHMACCompute an HMAC of a file with a key.Runs on each file you dropn→nMD4 hashCompute an MD4 digest of a file, on your device. MD4 is cryptographically broken, useful only for legacy or forensic work, not integrity or security.Runs on each file you drop·→1NT hashCompute a Windows NT hash (MD4 of UTF-16LE) from a password, on your device. Unsalted and trivially cracked, this is a forensics tool, not a way to protect anything.Takes no filen→nMurmurHash3 (32-bit)Compute a MurmurHash3 (x86, 32-bit) digest, a fast non-cryptographic hash, not for security.Runs on each file you dropn→nFletcher-8 checksumFletcher-8 checksum. A fast error-detection checksum, not a cryptographic hash. No authoritative spec exists for this word size (unlike -16/-32/-64): this implementation sums 4-bit nibbles mod 15, low nibble then high nibble per byte. A different convention (whole bytes mod 15) gives a different digest. Check your other tool uses the same convention before comparing.Runs on each file you dropn→nFletcher-16 checksumFletcher-16 checksum. A fast error-detection checksum, not a cryptographic hash.Runs on each file you dropn→nFletcher-32 checksumFletcher-32 checksum. A fast error-detection checksum, not a cryptographic hash.Runs on each file you dropn→nFletcher-64 checksumFletcher-64 checksum. A fast error-detection checksum, not a cryptographic hash.Runs on each file you dropn→nLuhn checksumValidate a number against the Luhn checksum, or compute its check digit. Used by credit card and ID numbers.Runs on each file you dropn→nAnalyse hashGuess which algorithm(s) produced a hash, from its length and charset. A heuristic, not a proof.Runs on each file you drop

Classical ciphers41

n→nCaesar encodeCaesar encode. A classical cipher, computed on your device.Runs on each file you dropn→nCaesar decodeCaesar decode. A classical cipher, computed on your device.Runs on each file you dropn→nCaesar brute forceCaesar brute force, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nCaesar Box encodeCaesar Box encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: the text is padded with X to fill the next perfect square, and the padding is indistinguishable from real text afterwards. "HELLO WORLD" decodes back as "HELLO WORLDXXXXX".Runs on each file you dropn→nCaesar Box decodeCaesar Box decode, classical cipher, a puzzle not a protection, computed on your device. The X padding the encoder added to reach a perfect square cannot be told from real text and is returned with the plaintext. Expect trailing X characters that were not in the original.Runs on each file you dropn→nVigenère encodeVigenère encode. A classical cipher, computed on your device.Runs on each file you dropn→nVigenère decodeVigenère decode. A classical cipher, computed on your device.Runs on each file you dropn→nSubstitution cipher encodeSubstitution cipher encode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nSubstitution cipher decodeSubstitution cipher decode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nAffine cipher encodeAffine cipher encode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nAffine cipher decodeAffine cipher decode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nBifid cipher encodeBifid cipher encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: the classic 5x5 Polybius square has no J, so J is folded into I, and everything that is not a letter, including spaces, digits and punctuation, is dropped. Output is uppercase. "The fox jumps, 42 times!" comes back as "THEFOXIUMPSTIMES".Runs on each file you dropn→nBifid cipher decodeBifid cipher decode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: J was folded into I at encode time and all spacing, digits and punctuation were dropped, so plaintext comes back as uppercase letters only.Runs on each file you dropn→nRail Fence encodeRail Fence encode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nRail Fence decodeRail Fence decode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nBaconian cipher encodeBaconian cipher encode, classical cipher, a puzzle not a protection, computed on your device. Non-letters pass through this direction, but they carry no information and the decoder drops them: a round trip returns lowercase letters only, so "The fox jumps, 42 times!" comes back as "thefoxjumpstimes".Runs on each file you dropn→nBaconian cipher decodeBaconian cipher decode, classical cipher, a puzzle not a protection, computed on your device. Only the A/B letters carry information, so every space, digit and punctuation mark in the ciphertext is dropped and the plaintext comes back lowercase, letters only.Runs on each file you dropn→nAtbash cipherAtbash cipher. A classical cipher, computed on your device.Runs on each file you dropn→nA1Z26 encodeA1Z26 encode. A classical cipher, computed on your device.Runs on each file you dropn→nROT5 (digits)ROT5 (digits). A classical cipher, computed on your device.Runs on each file you dropn→nROT13ROT13. A classical cipher, computed on your device.Runs on each file you dropn→nROT47ROT47, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nLeetspeakLeetspeak. A classical cipher, computed on your device.Runs on each file you dropn→nReverse textReverse text. A classical cipher, computed on your device.Runs on each file you dropn→nXOR cipherXOR cipher, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nXOR brute force (single-byte key)XOR brute force (single-byte key), classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nPlayfair cipher encodePlayfair cipher encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: only letters survive (J folds into I), a doubled letter or a lone trailing letter gets an X filler, and output is uppercase pairs. "HELLO WORLD" comes back as "HELXLOWORLDX".Runs on each file you dropn→nPlayfair cipher decodePlayfair cipher decode, classical cipher, a puzzle not a protection, computed on your device. The X filler the encoder inserted for doubled or trailing letters cannot be told from a real X, and all spacing is gone: expect uppercase letters only, occasionally with an extra X.Runs on each file you dropn→nPolybius square encodePolybius square encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: only letters survive (J folds into I) and case, spacing and punctuation are dropped.Runs on each file you dropn→nPolybius square decodePolybius square decode, classical cipher, a puzzle not a protection, computed on your device. Output is uppercase letters only, since the row and column digits carry no case, spacing or punctuation.Runs on each file you dropn→nFour-square cipher encodeFour-square cipher encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: only letters survive (J folds into I), a lone trailing letter gets an X filler, and output is uppercase pairs.Runs on each file you dropn→nFour-square cipher decodeFour-square cipher decode, classical cipher, a puzzle not a protection, computed on your device. The X filler the encoder appended for an odd final letter cannot be told from a real X, and all spacing is gone: expect uppercase letters only.Runs on each file you dropn→nADFGVX cipher encodeADFGVX cipher encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: only letters and digits survive, case and spacing are dropped, output is the ADFGVX alphabet only.Runs on each file you dropn→nADFGVX cipher decodeADFGVX cipher decode, classical cipher, a puzzle not a protection, computed on your device. Output is uppercase letters and digits only, since the ADFGVX encoding carries no case or spacing.Runs on each file you dropn→nBeaufort cipherBeaufort cipher, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nAutokey cipher encodeAutokey cipher encode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nAutokey cipher decodeAutokey cipher decode, classical cipher, a puzzle not a protection, computed on your device.Runs on each file you dropn→nTap code encodeTap code encode, classical cipher, a puzzle not a protection, computed on your device. Not reversible to the exact input: only letters survive (J folds into I) and case, spacing and punctuation are dropped.Runs on each file you dropn→nTap code decodeTap code decode, classical cipher, a puzzle not a protection, computed on your device. Output is uppercase letters only, since tap groups carry no case, spacing or punctuation.Runs on each file you dropn→nOne-time pad (XOR)True one-time-pad XOR: a key at least as long as the message, used once, mathematically unbreakable if kept secret and never reused. Refuses a key that is too short instead of silently repeating it.Runs on each file you dropn→nIdentify a classical cipherRanks guesses about which classical cipher (if any) produced a piece of text, from index of coincidence, a Caesar-shift chi-squared fit and digram statistics: a lead, never a certain answer.Runs on each file you drop

Questions

Where do my keys go?

Nowhere. Keys are generated inside this tab, by Web Crypto or by an audited JS library where the algorithm needs one, and stay in page memory. Nothing is transmitted, and nothing is stored after you close it. Save the key yourself if you need it again, because this site cannot give it back to you.

Is browser crypto safe to rely on?

The algorithms are either the browser's own Web Crypto implementation, the same one used by HTTPS in that browser, or an audited library such as noble or age for the algorithms Web Crypto does not offer. The weak point is the environment: a compromised machine or a hostile extension sees what the page sees. For high-value keys, use dedicated offline tooling.

What can I decrypt a file with?

The matching tool on this site. AES-GCM decrypt reads what AES-GCM encrypt produced, RSA-OAEP decrypt reads what RSA-OAEP encrypt produced. Each tool page names its pair, and the format is the standard one, so other implementations of the same algorithm can read it too.

Are the classical ciphers secure?

No, and every one of them says so on its own page. Caesar, Vigenere, Bifid, substitution, XOR with a repeating key and the rest are puzzle tools. They are here for CTFs and teaching. Use AES-GCM encrypt for anything real.

Which password hash should I use?

Argon2 for new work, with bcrypt and scrypt available where an existing system needs them. Plain hashes like MD5 or SHA-256 are the wrong tool for passwords, no matter how many times you apply them, because they are built to be fast.