Cifra de César. O código permite troca de posições mais elevadas (em vez da troca de 3 padrão César).
Dado um alfabeto latino A-Z de 26 letras indo de 0 a 25 (A sendo o 0) caso voce for criptografar a letra C
(número 2) com uma troca (chave) de 30 você faria 2 + 30 = 32. Mas como não existe a letra correspondente a 32 você faz a operação módulo. Então ficaria (2+30) mod 26 = 32 mod 26 = 6 = letra G
A=0; B=1; C=2; D=3; E=4; F=5; G=6;
Pra descriptografar faria o processo inverso. Bom não vou explicar a fundo aqui o funcionamento da Congruência Modular pois não é a intenção do post e sim a intenção é disponibilizar o código para fins de estudo devido obviamente que Cifras de Troca (transposição) não são nem um pouco recomendadas hj em dia. Em 1 segundo daria pra descriptografar fazendo todas possibilidades.
Qualquer dúvida relacionada ao código ou criptografia em geral só falar cmg que tentarei ajudar. Fui
Link 1 : http://paste.ideasla...show/25FKaukfRN ou quadro abaixo
#!/usr/bin/perl
use warnings;
use strict;
my @crip;
if( $ARGV[0] eq "-e" )
{
print "Ciphertext:\n";
for( my $i=1; $i<=15; $i++ )
{
foreach my $letra (split(//,uc($ARGV[1])))
{
# print chr(65+(ord($_)-65+$ARGV[2])%26);
#print chr(ord($_)+$i % 26);
push(@crip,chr(ord($letra)+$i % 26));
}
}
print "\n";
my $i=1;
for(my $j=0; $j<=56; $j=$j+4) {
print "Chave $i: " . substr(join('',@crip), $j, 4) . "\n";
$i++;
}
}




