As codificações em base são usadas para guardar ou transferir dados que são restritos do US-ASCII (caracteres baseados no alfabeto inglês - códigos de 0 à 31, 127 em decimal não podem ser impressos).
- Usando o Rot13:

É bastante utilizado para proteger emails. É tão seguro que a Microsoft usava ele para guardar informações sobre seus programas na chave de registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count
O valor dessa chave está em rot13. Porém no Windows 7 e 2008 Beta resolveram trocar o rot13 pelo Vigenère cipher. Agora na versão RTM voltaram a usar o rot13!!
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Exemplo 01: | |
import codecs | |
texto1 = codecs.encode("dado para ser codificado", "rot13") | |
print texto1 | |
# Exemplo 02: | |
texto2 ='dado para ser codificado' | |
print texto2.encode('rot-13') | |
# Exemplo 03: | |
from string import maketrans | |
rot13_trans = maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm') | |
texto3 = 'dado para ser codificado' | |
print texto3.translate(rot13_trans) |
Resultado:
qnqb cnen fre pbqvsvpnqb
- String Maketrans:
Esse método mapeia cada caractere da string intab no caractere de mesma posição da string outtab, e depois é passada para a função translate(). Por isso as duas strings devem ter o mesmo tamanho.
Exemplo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from string import maketrans | |
intab = "aeiou" | |
outtab = "4310V" | |
transtab = maketrans(intab, outtab) | |
str = raw_input(">> "); | |
print str.translate(transtab); |
Resultado:
>> zeldani
z3ld4n1
- Módulo Base-64:
O princípio da base64 é codificar qualquer caractere US-ASCII para a base de 8 bits. Esse módulo codifica e descodifica pelo RFC 3548. Esse padrão define a Base16, Base32 e Base64 transformando strings binárias em textos strings que podem ser enviadas de forma segura por emails.
Exemplo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import base64 | |
codigo = base64.b64encode('dado a ser codificado') | |
print codigo | |
texto = base64.b64decode(codigo) | |
print texto |
Resultado:
ZGFkbyBhIHNlciBjb2RpZmljYWRv
dado a ser codificado
* Fontes:
http://pt.kioskea.net/contents/base/base64.php3
http://docs.python.org/library/base64.html
http://www.tutorialspoint.com/python/string_maketrans.htm
http://searchsecurity.techtarget.com/definition/ROT-13
http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you%E2%80%99re-joking/
http://blog.didierstevens.com/2009/01/18/quickpost-windows-7-beta-rot13-replaced-with-vigenere-great-joke/
http://forensiczone.blogspot.com.br/2007/12/user-assist-data-in-ram-dump.html
http://www.python.org.br/planet/
http://www.evanfosmark.com/2009/01/rot13-in-python-30/
0 comentários:
Postar um comentário