Geração de senhas fortes é uma necessidade diária, além de um bom exercício para quem está aprendendo. Em Python, resolvemos isso com meia dúzia de linhas de código.
O primeiro passo é obter uma lista de todos os caracteres válidos para a senha, contendo letras maiúsculas e minúsculas, números e os famosos caracteres especiais, para garantir força máxima. Você pode criar essa lista manualmente, ou então, conhecendo os recursos da linguagem, pode usar o módulo built-in
Strings, que já nos entrega tudo isso pronto com
ascii_letters,
digits e punctuation.
O segundo passo é escolher valores aleatórios contidos nessas listas de caracteres válidos. Para isso, podemos usar
choices, do módulo built-in
random.
Veja como ficou o código:
def senha_forte(tamanho: int) -> str:
from string import ascii_letters, digits, punctuation
from random import choices
escolhas = choices(
ascii_letters + digits + punctuation, k=tamanho
)
return "".join(escolhas)?
e agora testando o resultado:
for _ in range(10):
print(senha_forte(32))
tv;6t6lr(_T\@V[(y>Lip<.KBMYqx&Q'
`lY:1SGKlJft:@I8p.e9K#Ql"Lcoy&2~
j|VF!5q268B=xSv+99Wk11*(*oXd4}gC
b35}a:DI?t)%erdhq-Hbu&K>!Y*d}QYi
vs&{Q-;i2V.d9qVS*r8v&okz\}A^sL`=
+Ed\_SfDe-S=y$^@qSv0*f<Olb1aH,E~
Z-(<J]9uuZi9?bFn8H)_xoF1u5l&Vw"T
W2!NQE"0~%CZqR[c=@O3)%Ay*Dp5uMeI
[3SZU]9!U:h0;;8x.>Dg<(dThz.h-Dr,
t2H(:<cJ\$8YGw|J(a$e`ZunXm!wl59i?
Podemos certamente adicionar mais normas para a criação da senha, como por exemplo controlar individualmente a quantidade de letras, números e caracteres especiais para aplicações em casos mais específicos.