[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Troca de letras
From: |
Roger Martins |
Subject: |
Re: [shell-script] Troca de letras |
Date: |
Fri, 6 Jan 2006 16:53:38 +0000 (GMT) |
Muito obrigado Mrbits, e a todos os outros que responderam. Mrbits o que vc me
passou era exatamente o que eu queria. Com base nisso eu fiz o script:
#!/bin/bash
clear
while : ;
do
echo "1) Criptografar mensagem"
echo "2) Descriptografar mensagem"
echo "3) Sair"
read -p "Digite sua escolha: " ESCOLHA
case $ESCOLHA in
1)
read -p "Digite a mensagem que deseja criptografar: " MSG
echo -e "Criptografando....\n"
echo "####"
echo $MSG | tr 'a-zA-Z' 'n-za-mN-ZA-M'
echo -e "####\n"
;;
2)
read -p "Digite a mensagem que deseja descriptografar: " MSG2
echo -e "Descriptografando....\n"
echo "####"
echo $MSG2 | tr 'a-zA-Z' 'n-za-mN-ZA-M'
echo -e "####\n"
;;
3)
exit
;;
esac
done
Se o codigo estiver "feio" não reparem estou aprendendo hehehe. Eu entendi o
que foi feito aqui 'a-zA-Z' 'n-za-mN-ZA-M' mais ainda não está totalmente
claro em minha mente. Por isso Gostaria de que vc explicasse para mim um pouco
melhor e ser der tambem como ficaria apenas um salto a = b b = c. Muito
obrigado Valeu a todos.
MrBiTs <address@hidden> escreveu: -----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-----
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE
var lrec_target="_blank";var lrec_URL=new Array();
lrec_URL[1]="http://br.rd.yahoo.com/SIG=12fosgf17/M=387526.7663462.8550203.1588051/D=brclubs/S=2137111254:HM/Y=BR/EXP=1136296590/A=3191179/R=0/id=flashurl/SIG=16dh90311/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=9910&LID=283270&DGC=BA&DGStor=DHS&DGSite=Yahoo&Conum=BR&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs";
var
lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1221_lrec_dell_t_dic8_dhs_producto.swf?clickTAG=javascript:LRECopenWindow(1)";
var
lrec_altURL="http://br.rd.yahoo.com/SIG=12fosgf17/M=387526.7663462.8550203.1588051/D=brclubs/S=2137111254:HM/Y=BR/EXP=1136296590/A=3191179/R=1/id=altimg/SIG=16dh90311/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=9910&LID=283270&DGC=BA&DGStor=DHS&DGSite=Yahoo&Conum=BR&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs";
var
lrec_altimg="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1221_lrec_dell_t_dic8_dhs_producto.gif";
var lrec_width=300;var lrec_height=250;
---------------------------------
Links do Yahoo! Grupos
Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
Para sair deste grupo, envie um e-mail para:
address@hidden
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
Yahoo!.
---------------------------------
Yahoo! doce lar. Faça do Yahoo! sua homepage.
[As partes desta mensagem que não continham texto foram removidas]