9 de set de 2012

Dicas Python - Criptografia


     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:
     Do inglês "ROTate by 13 places", como o próprio nome já diz ele anda 13 posições da letra. Ele pega a primeira metade das letras do alfabeto e troca pela segunda metade. Então, A torna se N, B vira O, e assim em diante, e na conversão o N torna se A, o B torna O, etc.
    É 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:

Resultado:
qnqb cnen fre pbqvsvpnqb

     O módulo codecs fornece acesso ao registro coded do Python, que gerencia o codec e o error handling lookup process. O encode codifica o objeto e retorna uma tupla. 

- 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:

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:

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