Skip to main content

Python Enigma cypher machine simulator.

Project description

pyEnigma

https://img.shields.io/pypi/pyversions/pyenigma.svg?style=flat-square https://img.shields.io/pypi/v/pyenigma.svg?style=flat-square https://img.shields.io/pypi/l/pyenigma.svg?style=flat-square https://img.shields.io/travis/cedricbonhomme/pyEnigma/master.svg?style=flat-square https://img.shields.io/coveralls/cedricbonhomme/pyEnigma/master.svg?style=flat-square

pyEnigma, a Python Enigma cypher machine simulator.

Usage

As a Python library

$ pipenv install pyenigma
 🐍✨
Python 3.6.4 (default, Feb 23 2018, 13:45:58)
[GCC 7.2.0] 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 Vwoxn

As a program

$ pipsi install pyenigma
 🍰✨
$ echo "Hello World" | enigma ABC A  I II III "AV BS CG DL FU HZ IN KM OW RX"
Qgqop Vwoxn

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

License

pyEnigma is under GPLv3 license.

Author

Release History

0.2.1 (2018-12-01)

  • dependencies upgraded for CVE-2018-18074;

  • some useless code removed.

0.2 (2018-02-28)

  • pyEnigma is ready for use with pipenv and pipsi.

0.1 (2017-03-15)

  • first release on pypi.

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.2.1.tar.gz (18.3 kB view hashes)

Uploaded Source

Supported by

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