Skip to main content

Python Enigma cypher machine simulator.

Project description

pyEnigma

builds.sr.ht status

pyEnigma, a Python Enigma cypher machine simulator.

For reporting issues, visit the tracker here: https://todo.sr.ht/~cedric/pyenigma

Usage

As a Python library

You can install pyEnigma with Poetry.

$ poetry install pyenigma

Then you can use it in your program:

$ poetry shell
(pyenigma-X0xzv6Ge-py3.8) $
(pyenigma-X0xzv6Ge-py3.8) $ python
Python 3.8.0 (default, Dec 11 2019, 21:43:13)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyenigma import enigma
>>> from pyenigma import rotor
>>> print(rotor.ROTOR_GR_III)

    Name: III
    Model: German Railway (Rocket)
    Date: 7 February 1941
    Wiring: JVIUBHTCDYAKEQZPOSGXNRMWFL
>>>
>>> engine = enigma.Enigma(rotor.ROTOR_Reflector_A, rotor.ROTOR_I,
                                rotor.ROTOR_II, rotor.ROTOR_III, key="ABC",
                                plugs="AV BS CG DL FU HZ IN KM OW RX")
>>> print(engine)

    Reflector:
    Name: Reflector A
    Model: None
    Date: None
    Wiring: EJMZALYXVBWFCRQUONTSPIKHGD

    Rotor 1:
    Name: I
    Model: Enigma 1
    Date: 1930
    Wiring: EKMFLGDQVZNTOWYHXUSPAIBRCJ
    State: A

    Rotor 2:
    Name: II
    Model: Enigma 1
    Date: 1930
    Wiring: AJDKSIRUXBLHWTMCQGZNPYFVOE
    State: B

    Rotor 3:
    Name: III
    Model: Enigma 1
    Date: 1930
    Wiring: BDFHJLCPRTXVZNYEIWGAKMUSQO
    State: C
>>> secret = engine.encipher("Hello World")
>>> print(secret)
Qgqop Vyzxp

As a program

Install pyEnigma system wide with pipx:

$ pipx install pyenigma

Then you can use the command line interface:

$ echo "Hello World" | enigma ABC A  I II III "AV BS CG DL FU HZ IN KM OW RX"
Qgqop Vyzxp

$ echo "Qgqop Vyzxp" | enigma ABC A  I II III "AV BS CG DL FU HZ IN KM OW RX"
Hello World

License

pyEnigma is licensed under GNU General Public License version 3

Author

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyenigma-0.3.0.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyenigma-0.3.0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file pyenigma-0.3.0.tar.gz.

File metadata

  • Download URL: pyenigma-0.3.0.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.0 Linux/5.3.0-51-generic

File hashes

Hashes for pyenigma-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6212231889ef162e08451272fe3cb5ed95a8d4cc4acd3ff6cb5eda2f1d69c0d7
MD5 427b280f7cc994d5f86a3fb0154f9ce2
BLAKE2b-256 cc4fce7e892a3c4606d1459e8c53a460474a00d1a53ec44aa31b21645d84f15b

See more details on using hashes here.

File details

Details for the file pyenigma-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyenigma-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.0 Linux/5.3.0-51-generic

File hashes

Hashes for pyenigma-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec0f3b7b9393780d0c1f66aa8db3a233600def71636ce113cc66aeadd5123daf
MD5 43f3c6839fb42a1eb2dc1ccfa8655771
BLAKE2b-256 62ad91543304562a3189a13c35ea96bd929f474736dae008cf1de437a0837d77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page