About Enigma
Encipher/decipher with the WW2 Enigma machine. Enigma was used by the German military, among others, around the WW2 era as a portable cipher machine to protect sensitive military, diplomatic and commercial communications. The standard set of German military rotors and reflectors are provided. To configure the plugboard, enter a string of connected pairs of letters, e.g. AB CD EF connects A to B, C to D, and E to F. This is also used to create your own reflectors. To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by < then a list of stepping points. This is deliberately fairly permissive with rotor placements etc compared to a real Enigma (on which, for example, a four-rotor Enigma uses only the thin reflectors and the beta or gamma rotor in the 4th slot). More detailed descriptions of the Enigma, Typex and Bombe operations can be found here.
Input: text. Output: text.
Format reference: Enigma background and specification
Example
Use “Try example” to load this public sample and its settings, then run it.
Settings used in this example
| Parameter | Example value | Input and choices |
|---|---|---|
| Model | "3-rotor" | 3-rotor, 4-rotor |
| Left-most (4th) rotor | "" | Beta, Gamma. Escape sequences such as \n, \r and \t are supported |
| Left-most rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-most rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-hand rotor | "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Left-hand rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-hand rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Middle rotor | "AJDKSIRUXBLHWTMCQGZNPYFVOE<F" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Middle rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Middle rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Right-hand rotor | "BDFHJLCPRTXVZNYEIWGAKMUSQO<W" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Right-hand rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Right-hand rotor initial value | Z | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Reflector | "AY BR CU DH EQ FS GL IP JX KN MO TZ VW" | B, C, B Thin, C Thin. Escape sequences such as \n, \r and \t are supported |
| Plugboard | "" | Text |
| Strict output | true | Remove non-alphabetic characters and group the output. |
Input
G
Result
P
Parameters
| Parameter | Default value | Input and choices |
|---|---|---|
| Model | "3-rotor" | 3-rotor, 4-rotor |
| Left-most (4th) rotor | "LEYJVCNIXWPBQMDRTAKZGFUHOS" | Beta, Gamma. Escape sequences such as \n, \r and \t are supported |
| Left-most rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-most rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-hand rotor | "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Left-hand rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Left-hand rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Middle rotor | "AJDKSIRUXBLHWTMCQGZNPYFVOE<F" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Middle rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Middle rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Right-hand rotor | "BDFHJLCPRTXVZNYEIWGAKMUSQO<W" | I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported |
| Right-hand rotor ring setting | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Right-hand rotor initial value | A | A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z |
| Reflector | "AY BR CU DH EQ FS GL IP JX KN MO TZ VW" | B, C, B Thin, C Thin. Escape sequences such as \n, \r and \t are supported |
| Plugboard | "" | Text |
| Strict output | true | Remove non-alphabetic characters and group the output. |
Before interpreting the result
Use the exact key encoding, mode, padding and IV expected by the source system. Historical ciphers are useful for learning and analysis. Encoding alone provides no confidentiality.
How to use this page
- Paste your input or open a local file.
- Adjust tool options if needed, then choose Run tool.
- Copy the result or download the original output bytes.
Inputs and results are not added to the public catalogue or saved in the URL. Processing happens in your browser; HTTP Request and DNS over HTTPS send the requests you explicitly run. Files up to 128 MiB can be opened; decompression and image tools may have smaller processing limits. Large results have a shortened preview. Text and HTML downloads use UTF-8; binary downloads preserve output bytes. Pasted text follows browser newline handling; open a file when exact input bytes matter.