segunda-feira, 30 de dezembro de 2013

[Python] - Implementação da Cifra de César

Olá pessoal, nesse post iremos ver a implementação da Cifra de César utilizando a linguagem Python. O exemplo de código funciona tanto nas versões do Python 2.x como também 3.x.

A Cifra de César é um das técnicas de criptografia mais simples. Ela consiste em substituir uma letra do alfabeto por outra letra. O que determina por qual letra será substituída é a quantidade de posições do deslocamento.

Para criptografar, é feito um deslocamento da esquerda para direita. Já para descriptografar, o deslocamento é feito da direita para esquerda.

Caso queira saber mais, acesse: http://en.wikipedia.org/wiki/Caesar_cipher

Veja a implementação em Python da Cifra de César:


Perceba que há duas funções, a de criptografar (encrypt) e de descriptografar (decrypt). Ambas as funções recebem dois parâmetros. O parâmetro "text" é a mensagem que será criptografada e o parâmetro "key" é o número de posições que o alfabeto será rotacionado.

São utilizadas as funções ord() e chr(). A função ord() retorna o número da tabela ASCII de determinada letra do alfabeto. Já a função chr() retorna o caracter correspondente a determinado número da tabela ASCII.

Perceba que na linha 11 (função encrypt) é utilizado o "+" para adicionar a "key". Isso é feito porque o deslocamento é da esquerda para direita. É utilizada uma aritmética modular para pegar a ordem de cada caracter que formará a string criptografada.

Na linha 26 (função decrypt) é utilizado o "-" para diminuir pela "key". Isso é feito porque o deslocamento é da direita para a esquerda na descriptografia. Também é utilizada a aritmética modular.

Quaisquer dúvidas deixem nos comentários, até a próxima.


Nenhum comentário: