Cifra de César em Python


SUBMITTED BY: Guest

DATE: July 5, 2013, 7:32 p.m.

FORMAT: Python

SIZE: 1.2 kB

HITS: 2653

  1. class Caesar:
  2. def __init__(self):
  3. self.__letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  4. def encrypt(self, texto_plano, key = 3):
  5. '''(Caesar, str, int) -> str
  6. Retorna o texto_plano cifrado com a cifra de Cesar,
  7. utlizando a chave key, cujo padrao e 3.
  8. '''
  9. cipher_text = ''
  10. texto_plano = texto_plano.upper()
  11. for ch in texto_plano:
  12. if ch in self.__letters:
  13. idx = self.__letters.find(ch) + key
  14. if idx >= 26:
  15. idx -= 26
  16. cipher_text += self.__letters[idx]
  17. return cipher_text
  18. def decrypt(self, texto_cifrado, key = 3):
  19. ''' (Caesar, str, int) -> str
  20. Retorna em texto plano o texto_cifrado decifrado com a
  21. cifra de Cesar, utilizando a chave key, cujo padrao e 3.
  22. '''
  23. plain_text = ''
  24. texto_cifrado = texto_cifrado.upper()
  25. for ch in texto_cifrado:
  26. if ch in self.__letters:
  27. idx = self.__letters.find(ch) - key
  28. plain_text += self.__letters[idx]
  29. return plain_text.lower()

comments powered by Disqus