16 lines
468 B
Raku
16 lines
468 B
Raku
my @alpha = 'A' .. 'Z';
|
|
sub encrypt ( $key where 1..25, $plaintext ) {
|
|
$plaintext.trans( @alpha Z=> @alpha.rotate($key) );
|
|
}
|
|
sub decrypt ( $key where 1..25, $cyphertext ) {
|
|
$cyphertext.trans( @alpha.rotate($key) Z=> @alpha );
|
|
}
|
|
|
|
my $original = 'THE FIVE BOXING WIZARDS JUMP QUICKLY';
|
|
my $en = encrypt( 13, $original );
|
|
my $de = decrypt( 13, $en );
|
|
|
|
.say for $original, $en, $de;
|
|
|
|
say 'OK' if $original eq all( map { .&decrypt(.&encrypt($original)) }, 1..25 );
|