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 (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.

Filename, size & hash SHA256 hash help File type Python version Upload date
pyEnigma-0.2.tar.gz (19.1 kB) Copy SHA256 hash SHA256 Source None Feb 28, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page