[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Troca de letras
From: |
MrBiTs |
Subject: |
Re: [shell-script] Troca de letras |
Date: |
Tue, 03 Jan 2006 09:55:23 -0200 |
User-agent: |
Mozilla Thunderbird 1.0.7 (X11/20051013) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> Galera é o seguinte estou querendo fazer um script para trocas de letras
> , é como se fosse um enigma por ex:
>
> Digite aqui um nome: ROGER
>
> Depois de digitado ele me voltasse assim:
>
> Enigma: QNFDQ
>
> E logo depois tivesse uma opção para quebrar o enigma, ou seja eu digito
> QNFDQ e ele me devolvia ROGER.
>
> A troca das letras funciona da seguinte maneira, depois de digitado a
> frase para gerar o enigma ele troca cada letra digitada pela seguinte
> letra do alfabeto. Ex:
>
> R = Q
> O = N
>
> etc....
>
> E para desfazer o enigma ele faz o processo inverso. Ou seja ele pega
> cada letra do enigma e troca pela letra anterior do alfabeto. Ex:
>
> Q = R
> N = O
>
> etc....
>
> A parte de leitura de dados case etc, eu ja sei fazer gostaria de saber
> mesmo a sintaxe e a logica para a troca das letras. Muito obrigado a todos.
>
> Ps. Inspiração tirada do livro Fortaleza Digital !
Interessante... Estamos falando de "criptografia simétrica". Exorto
vivamente você a ler um pequeno artigo:
http://www.mrbits.com.br/article.php?article=6
Acredito que você vá gostar.
A lógica é bem simples. Você pode usar um comando chamado "tr" para
fazer essa troca para você. Vamos tomar como exemplo um tipo de lógica
de rotacionamento de letras chamado ROT13. A idéia é que você rotacione
o alfabeto 13 letras para frente, ou seja, A = N, B = O e assim por
diante. Imagine que queremos "criptografar" ROGER utilizando ROT13:
$ echo ROGER | tr 'a-zA-Z' 'n-za-mN-ZA-M'
EBTRE
e para o inverso
$ echo EBTRE | tr 'a-zA-Z' 'n-za-mN-ZA-M'
ROGER
A partir daí, você pode gerar as expressões regulares que determinam o
seu fator de rotacionamento. No caso do ROT13, o fator é 13, já que
rotacionamos as letras 13 posições no alfabeto.
Acredito que, com isso, você faça o seu "embaralhamento" de letras. Como
exercício, ótimo. Como conceito de segurança, zero.
Um abraço
- --
GPG Public Key
http://keyserver.veridis.com:11371/export?id=-6037232142263389818
\\|||//
(.) (.)
- ----ooOO--( )--OOoo-----
MrBiTs
http://www.mrbits.com.br
address@hidden
- ------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFDumYrrDdxWm3R8YYRAp/DAJ9gHC1UxdZ5ROIwTkxqyEnbLxmlowCfWbQS
vihpFDqwFbK3bhhb9JC/9O4=
=PGhM
-----END PGP SIGNATURE-----