01.
import
random
02.
03.
def
cria_chave():
04.
"""Devolve uma chave para encriptar mensagens. Constrói uma permutação."""
05.
alfabeto
=
'abcdefghijklmnopqrstuvwxyz '
06.
chave
=
''
07.
while
alfabeto:
08.
# escolhe próximo caracter
09.
indice
=
random.randint(
0
,len(alfabeto)
-
1
)
10.
car
=
alfabeto[indice]
11.
# actualiza chave
12.
chave
=
chave
+
car
13.
# actualiza alfabeto
14.
alfabeto
=
alfabeto.replace(car,'')
15.
return
chave
Consegue perceber a ideia? É fácil. Escolhemos ao acaso uma letra do alfabeto e adicionamos à nossa permutação. Retiramos de seguida a letra do alfabeto. Repetimos o processo até esgotarmos as letras. Notar que usamos um espaço em branco!
Outra forma de fazer, agora com um ciclo for.
01.
def
cria_chave_2():
02.
"""Devolve uma chave para encriptar mensagens. Constrói uma permutação."""
03.
alfabeto
=
'abcdefghijklmnopqrstuvwxyz '
04.
chave
=
''
05.
for
i
in
range(len(alfabeto)):
06.
indice
=
random.randint(
0
,
26
-
i)
07.
chave
=
chave
+
alfabeto[indice]
08.
alfabeto
=
alfabeto[:indice]
+
alfabeto[indice
+
1
:]
09.
return
chave
Analise as diferenças. Qual das duas versões é a sua preferida, e porquê?