Home › Developer Tools › Playfair Cipher

Playfair Cipher

Type a keyword to build the 5×5 Playfair key square, then encrypt or decrypt any text. Every digraph is listed with the rule that was applied, and clicking a step lights up its letters on the square.

Last updated:

Key square

Click a step below to see its letters on the square.

Digraph steps

#PairPositions (row, col)RuleResult

Advertisement
Advertisement

How to use the Playfair Cipher

  1. Choose Encrypt or Decrypt at the top.
  2. Enter the keyword, for example PLAYFAIR EXAMPLE. Repeated letters and non-letters are dropped and the rest of the alphabet fills the square.
  3. Pick the variant: merge I and J (the classic choice) or omit Q, and set the filler letter if your puzzle uses something other than X.
  4. Type or paste your text. The result updates instantly; press Encrypt text or Decrypt text to confirm and Copy result to copy it.
  5. Study the steps: each row of the table shows the pair, its square positions, the rule and the output. Click a row to see it on the square.

The three Playfair rules

After the message is split into digraphs (pairs of letters), each pair is located in the key square and one of three rules is applied. Decryption simply runs the first two rules in the opposite direction; the rectangle rule is its own inverse.

CaseEncryptDecryptExample (key PLAYFAIR EXAMPLE)
Both letters in the same rowTake the letter to the right of each (wrap to the start of the row)Take the letter to the leftEX → XM (row I R E X M)
Both letters in the same columnTake the letter below each (wrap to the top)Take the letter aboveDE → OD (column A E D O V)
Different row and columnEach letter moves along its own row to the other letter's columnSame as encryptHI → BM (corners of a rectangle)

Preparing the plaintext

  1. Keep letters only and convert to capitals. Spaces, digits and punctuation are removed, which is why Playfair ciphertext is usually written in pairs or groups of five.
  2. Apply the 25-letter rule: write J as I (or drop Q in the omit-Q variant).
  3. Split into pairs from left to right. If a pair would contain the same letter twice, insert the filler after the first letter and continue from the second: TREE becomes TR EX E…
  4. Pad the end with the filler if one letter is left over.

Because fillers are added during encryption, decrypted Playfair text often contains stray X letters, for example TREXESTUMP for TREES TUMP. Reading the result aloud usually makes the fillers obvious.

Tips for puzzles and classes

  • A valid Playfair ciphertext always has an even number of letters and never contains a pair such as AA; if yours does, the text was split wrongly or it is a different cipher.
  • No letter is ever encrypted to itself, and a pair and its reverse (AB and BA) always encrypt to reversed results. Codebreakers use both facts to test guesses.
  • Try longer, varied key phrases: a key such as MONARCHY fills the first rows with distinct letters and changes every rule outcome.
  • For a cipher that keeps spaces and is easier to start with, try the Caesar cipher, or move on to the polyalphabetic Vigenère cipher.

Frequently asked questions

How does the Playfair cipher work?

The keyword fills a 5×5 square, followed by the unused letters of the alphabet. The message is split into pairs of letters. If both letters are in the same row, each is replaced by the letter to its right; in the same column, by the letter below; otherwise they form a rectangle and each is replaced by the letter in its own row at the other letter's column.

Why are I and J combined?

A 5×5 square has room for only 25 letters, so one letter of the 26-letter alphabet must go. The usual convention writes J as I. Some puzzles omit Q instead because it is rare; choose Omit Q if your key square has no Q.

Why does the ciphertext contain extra X letters?

Playfair cannot encrypt a pair made of the same letter, so a filler (usually X) is inserted between doubled letters, as in BALLOON becoming BA LX LO ON. A filler is also added when the message has an odd number of letters. When the filler itself is doubled, a second filler such as Q is used.

How do I decrypt a Playfair cipher?

Select Decrypt, enter the same keyword and paste the ciphertext. The rules are reversed: same row takes the letter to the left, same column takes the letter above, and rectangles swap columns as before. The tool then removes fillers that sit between two identical letters and at the very end; untick the option to see the raw output.

Is my keyword example correct?

With the keyword PLAYFAIR EXAMPLE, the text HIDE THE GOLD IN THE TREE STUMP encrypts to BMODZBXDNABEKUDMUIXMMOUVIF. This is the standard textbook example and it is loaded by default so you can check your settings.

Is the Playfair cipher secure?

No. It was used for tactical messages in the late 1800s and early 1900s because it is quick by hand, but it can be broken with digraph frequency analysis and modern hill-climbing solvers. Use it for puzzles, escape rooms and learning, and modern encryption such as AES for real secrets.

Is my text sent anywhere?

No. The key square and all encryption and decryption are computed in JavaScript in your browser. Nothing you type is uploaded.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Password GeneratorCreate strong passwords and passphrases.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.
See all 65 Encoders, Hashes & Crypto →