A variation of the Augustus Cipher that offsets space-separated words based on the position of each character.
Project description
stepped-augustus
A variation of the Augustus Cipher that offsets space-separated words based on the position of each character; contrary to what Augustus had originally practiced, letters wrap around instead of presenting a special case.
"Whenever he wrote in cipher, he wrote B for A, C for B, and the rest of the letters on the same principle, using AA for X."
Suetonius, Life of Augustus 88
Installation
Through pip
:
λ> python -m pip install stepped-augustus
Usage
As a CLI application:
λ> augustus -h
usage: augustus [-h] [--direction {left,right}] [--multiplier MULTIPLIER] message
Ciphers a given message.
positional arguments:
message The message to be ciphered
optional arguments:
-h, --help show this help message and exit
--direction {left,right}
The direction to cipher the message to
--multiplier MULTIPLIER
The multiplier to be applied when ciphering a message
λ> augustus "Hello, World" --direction right --multiplier 1
Igopt, Xqupi
λ> augustus "Igopt, Xqupi" --direction left --multiplier 1
Hello, World
As a package:
>>> from augustus import SteppedAugustus as SA
>>>
>>> SA("Hello, World", 1).right_cipher
'Igopt, Xqupi'
>>>
>>> SA("Igopt, Xqupi", 1).left_cipher
'Hello, World'
>>>
>>> # Alternatively the _cipher method can be used for lazy
>>> # evaluation and customizing the direction.
>>>
>>> for char in SA("Hello", 1)._cipher(1):
... print(char)
>>>
>>> # Additionally, skip_chars and stop_chars can specified
>>> # to semantically modify the behaviour of the algorithm.
>>>
>>> # Shifts with 10234
>>> SA("Hello", skip_chars="H").right_cipher
'Ienos'
>>>
>>> # Shifts with 11234
>>> SA("Hello", stop_chars="e").right_cipher
'Ifnos'
>>>
>>> # Shifts with 10123
>>> SA("Hello", skip_chars="e", stop_chars="e").right_cipher
'Iemnr'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file stepped-augustus-1.2.0.tar.gz
.
File metadata
- Download URL: stepped-augustus-1.2.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.9 CPython/3.8.3 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e3305c59cf1f9b4579fea7126c7a558d71cf69ffa11f57b7a72440c992d4ad4 |
|
MD5 | 72f855336047d4c92566efa625c6b2b3 |
|
BLAKE2b-256 | 05793aa78b07bf1ad16715ebbaae04444648f7e2bba463c5c4bc3241f1d32472 |
File details
Details for the file stepped_augustus-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: stepped_augustus-1.2.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.9 CPython/3.8.3 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdb8a25d2fadb935bcf38ba57454b634e001eef1288b09cf79d1cdf0a4bace94 |
|
MD5 | ece5db7a590cc1dc2d408ac1d546dc15 |
|
BLAKE2b-256 | d916f8b34b9b87bfacab13f40dbdf9768b39287eb6595587b97d55200fef27c6 |