Skip to main content

A Python package and command line script for encoding, decoding and cracking Caesar ciphers.

Project description

A Python package and command line script for encoding, decoding and cracking messages with the Caesar Shift Cipher.

https://travis-ci.org/RobSpectre/Caesar-Cipher.svg?branch=master https://coveralls.io/repos/RobSpectre/Caesar-Cipher/badge.png?branch=master

Table of Contents

Features

  • Encoding

  • Decoding

  • Cracking (decoding ciphertext without known offset)

  • Arbitrary cipher offsets

  • Command Line Interface

  • Test suite

  • Support for both Python 2 and 3

  • PEP8. Praise the Dark Lord

Installation

The latest version can be installed via pip.

$ pip install caesarcipher

If that doesn’t work, give easy_install a try:

$ easy_install caesarcipher

Usage

Command Line

Encoding a message:

$ caesarcipher --encode "This is a message I want to encode."

Encoding a message with a specific offset:

$ caesarcipher --offset 14 --encode "This is a message I want to encode."

Decoding a ciphertext with a specific offset:

$ caesarcipher --offset 14 --decode "W kobh hc sbqcrs hvwg ghfwbu."

Cracking a ciphertext without knowing the offset:

$ caesarcipher --crack "W kobh hc sbqcrs hvwg ghfwbu."

Library

Encoding a message:

>>> from caesarcipher import CaesarCipher
>>> cipher = CaesarCipher('I want to encode this string')
>>> cipher.encoded
'W kobh hc sbqcrs hvwg ghfwbu.'

Encoding a message with a specific offset:

>>> from caesarcipher import CaesarCipher
>>> cipher = CaesarCipher('I want to encode this string.',
...     offset=14)
>>> cipher.encoded
'W kobh hc sbqcrs hvwg ghfwbu.'

Decoding a ciphertext with a specific offset:

>>> from caesarcipher import CaesarCipher
>>> cipher = CaesarCipher('W kobh hc sbqcrs hvwg ghfwbu.',
...    offset=14)
>>> cipher.decoded
'I want to encode this string.'

Cracking a ciphertext without knowing the offset:

>>> from caesarcipher import CaesarCipher
>>> cipher = CaesarCipher('W kobh hc sbqcrs hvwg ghfwbu.')
>>> cipher.cracked
'I want to encode this string.'

Development

Hacking

To hack on the project, clone the GitHub repo:

$ git clone https://github.com/RobSpectre/Caesar-Cipher.git

Then install in a virtualenv.

$ pip install -e ./

Tests

The project uses Nose for tests. Simply run from the project root.

$ nosetests -v

Go ahead and check on coverage and PEP8 while you’re at it!

$ nosetests -v --with-coverage --with-tissue

Meta

  • Written by Rob Spectre

  • Used for Hacker Olympics London 2014

  • Released under MIT License

  • Software is as is - no warranty expressed or implied.

  • The Caesar Shift Cipher is known to be ridiculously easy to crack, as evidenced by this very package. Do not confuse with actual cryptography or use in anything that is important - it’s just a fun math problem for a sunny vacation afternoon.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

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

Source Distribution

caesarcipher-1.0.tar.gz (10.1 kB view details)

Uploaded Source

File details

Details for the file caesarcipher-1.0.tar.gz.

File metadata

  • Download URL: caesarcipher-1.0.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for caesarcipher-1.0.tar.gz
Algorithm Hash digest
SHA256 19203849fa0309fc356cac18a138726ac2463af665cb5cc20174cbae54c4b245
MD5 c5cc280216f0dfbc71fef7ba9e8ef448
BLAKE2b-256 fb5175d0cb5a391239b536869e8750e76f12df0abf7e99eccb8299d694463854

See more details on using hashes here.

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