Crypt::Polybius - implementation of the Polybius square
use Crypt::Polybius; # 1 2 3 4 5 # 1 A B C D E # 2 F G H I/J K # 3 L M N O P # 4 Q R S T U # 5 V W X Y Z # # ATTACK -> 11 44 44 11 13 25 # AT -> 11 44 # DAWN -> 14 11 52 33 my $square = Crypt::Polybius->new; print $square->encipher('Attack at dawn.'), "\n";
This module provides an object-oriented implementation of the Polybius square, or Polybius checkerboard. This cipher is not cryptographically strong, nor completely round-trip-safe.
This class performs the following roles:
Crypt::Role::LatinAlphabet
Crypt::Role::CheckerboardCipher
MooX::Traits
new(%attributes)
Moose-like constructor.
new_with_traits(%attributes, traits => \@traits)
Alternative constructor provided by MooX::Traits.
The following attributes exist. All of them have defaults, and should not be provided to the constructor.
square
An array of arrays of letters. Provided by Crypt::Role::CheckerboardCipher.
square_size
The length of one side of the square, as an integer. Provided by Crypt::Role::CheckerboardCipher.
encipher_hash
Hashref used by the encipher method. Provided by Crypt::Role::CheckerboardCipher.
encipher
decipher_hash
Hashref used by the decipher method. Provided by Crypt::Role::CheckerboardCipher.
decipher
encipher($str)
Enciphers a string and returns the ciphertext. Provided by Crypt::Role::CheckerboardCipher.
decipher($str)
Deciphers a string and returns the plaintext. Provided by Crypt::Role::CheckerboardCipher.
preprocess($str)
Perform pre-encipher processing on a string. encipher calls this, so you are unlikely to need to call it yourself.
The implementation provided by Crypt::Role::LatinAlphabet uppercases any lower-case letters, and passes the string through Text::Unidecode. It also replaces any letter J with I because the former is not found in the alphabet provided by Crypt::Role::LatinAlphabet.
alphabet
Returns an arrayref of the known alphabet. Provided by Crypt::Role::LatinAlphabet.
with_traits(@traits)
Generates a new class based on this class, but adding traits.
Crypt::Role::ScrambledAlphabet is an example of an interesting trait that works with this class.
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=Crypt-Polybius.
http://en.wikipedia.org/wiki/Polybius_square.
Crypt::Polybius::Greek.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2014 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
To install Crypt::Polybius, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Crypt::Polybius
CPAN shell
perl -MCPAN -e shell install Crypt::Polybius
For more information on module installation, please visit the detailed CPAN module installation guide.