class Polybius:
2. def __init__(self):
3. ## p_alphabet nao possui a letra j, que sera substituida
4. ## pela letra i na cifragem e decifragem
5. self.p_alphabet = 'abcdefghiklmnopqrstuvwxyz'
6. self.p_alphanum = 'abcdefghijklmnopqrstuvwxyz0123456789'
7.
8. def cipher_alphabet(self, password):
9. ''' (str) -> str
10. Retorna um alfabeto cifrado iniciado com
11. o texto da palavra chave password
12. '''
13. c_alphabet = []
14. p_alphabet = self.p_alphanum
15. for ch in password:
16. if ch not in c_alphabet:
17. c_alphabet.append(ch)
18. idx = p_alphabet.find(ch)
19. p_alphabet = p_alphabet[idx:] + p_alphabet[:idx]
20. for ch in p_alphabet:
21. if ch not in c_alphabet:
22. c_alphabet.append(ch)
23. return ''.join(c_alphabet)