Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

Os dados são um ativo vital no mundo digital de hoje. Mais de oito milhões de pessoas são vítimas de hackers todos os anos e mais de 2.200 ataques cibernéticos ocorrem todos os dias. Com uma taxa tão alarmante de crimes cibernéticos, torna-se uma prioridade usar as melhores práticas para proteção contra hackers. Um dos aspectos mais importantes de qualquer conta é sua senha.

Se um hacker comprometer sua senha, ele poderá acessar suas informações pessoais e até mesmo sua conta bancária em questão de minutos. Embora isso pareça assustador, você pode aprender como proteger suas senhas usando as melhores práticas criando seu próprio programa Python para verificar sua força.

Regras diferentes para definir senhas fortes

Algumas regras de senha forte que você pode considerar implementar são:

  1. A senha deve ter pelo menos 12 caracteres. Quanto maior a senha, menor a chance de um ataque de força bruta comprometê-la.
  2. instagram viewer
  3. A senha deve conter uma combinação de letras minúsculas, letras maiúsculas, números e caracteres especiais.
  4. Evite repetir caracteres na senha.
  5. Não deve conter detalhes pessoais como nomes, números de telefone ou qualquer coisa que alguém possa adivinhar facilmente.
  6. Não deve ser uma palavra de dicionário comum, embora você possa usar palavras em frases de senha mais longas.
  7. A senha não deve ser a mesma para várias contas. Você pode configurar um gerenciador de senhas para preencher automaticamente diferentes senhas para vários sites sem lembrar de cada um deles.

Existem diferentes maneiras de crie uma senha inquebrável que você possa lembrar. Alguns deles estão usando canções de ninar, citações de filmes, linguagem da indústria e muito mais.

Como verificar a força da sua senha usando Python

Você pode criar um programa para testar a força da senha verificando as características acima. Para esta compilação, você precisará de dois módulos: corda e coleções.

Você também pode usar o Obter passagem módulo para ocultar uma senha conforme o usuário a insere. Isso ajuda a proteger sua senha quando você precisa digitá-la em público. Para instalar o getpass em seu ambiente local, abra um terminal e digite:

pip instalar getpass4

Você pode usar a classe String para verificar se um caractere é uma letra, dígito ou símbolo. Você pode fazer uso de coleções para verificar se há caracteres na senha que se repetem.

Use a palavra-chave def para definir uma função chamada check_password_strength () e passe a senha que você irá obter como parâmetro para ele.

Inicialize seis variáveis: lower_alpha_count, upper_alpha_count, número_contagem, special_char_count, comprimento, comum para zero. Estes irão verificar a presença de um alfabeto minúsculo, alfabeto maiúsculo, dígitos, caracteres especiais, comprimento, repetição de caracteres em uma senha.

Passe a senha que você obtém do usuário para o lista() função para convertê-lo em uma lista de caracteres. Usando o loop for, itere sobre cada caractere da lista. Use a instrução if-else para verificar se o caractere é um alfabeto minúsculo, alfabeto maiúsculo, número ou um caractere especial e atualize a contagem, respectivamente.

Você pode assumir que qualquer outra coisa do alfabeto ou número é um caractere especial. Para maior restrição, você pode armazenar caracteres especiais como uma string e verificar se o caractere da senha está presente nela. Além disso, alguns sites permitem que você use espaços em branco em uma senha. Você pode definir uma variável diferente e incrementá-la ou considerá-la na própria contagem de caracteres especiais.

importar corda
importar coleções

defcheck_password_strength(senha):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = comprimento = comum = 0

para char em lista(senha):
seCaracteres em string.ascii_lowercase:
contagem_alfa_inferior += 1
elif Caracteres em string.ascii_uppercase:
upper_alpha_count += 1
elif Caracteres em string.dígitos:
número_contagem += 1
outro:
especial_char_count += 1

Você precisará de uma lista de senhas ou banco de dados para verificar se a senha do usuário é comum. Você pode baixar uma lista de um milhão de senhas mais populares de Repositório GitHub de credenciais comuns do SecLists.

Salve o arquivo de texto como common_password_list.txt. Use a instrução with para executar o tratamento de exceção e abrir o arquivo de senha no modo de leitura. Use o ler() função para obter o conteúdo presente no arquivo e armazená-lo em uma variável chamada content.

Se a senha digitada pelo usuário não estiver presente na lista de senhas comuns, incremente o valor da variável comum em um.

comabrir("common_password_list.txt", 'r') comoarquivo:
conteúdo = arquivo.read()

se a senha não estiver no conteúdo:
comum += 1

Para verificar o tamanho da senha, basta passá-la para o len() função e verifique se é maior ou igual a doze. Nesse caso, incremente o valor da variável de comprimento.

selen(senha) >= 12:
comprimento += 1

Para verificar a repetição de caracteres na senha, use a subclasse Counter de Collections. O contador é uma coleção não ordenada de pares de chave e valor em que a chave é o próprio elemento e o valor é a contagem do elemento.

Use o método de compreensão de lista para fazer uma lista de caracteres repetidos do dicionário obtido usando coleções. Itere no dicionário e verifique se a contagem do caractere é maior que um. Se a contagem for maior, anexe-a a uma lista e armazene-a em repetidos.

 countOfWords = coleções. Contador (senha)
repetido = [i para i em countOfWords se countOfWords[i] > 1]

Agora que você tem os valores das características individuais, inicialize uma variável chamada força com zero. Como o nome sugere, você definirá essa variável para verificar a força da senha. O sistema de pontuação é de sete, um ponto para cada inclusão de um personagem e característica de uma senha forte.

Verifique se a contagem de alfabeto minúsculo, alfabeto maiúsculo, números, caracteres especiais é maior ou igual a um e incremente a força em um para cada presença. Da mesma forma, verifique se o comprimento e a variável comum são iguais a um e se o comprimento do caractere repetido é igual a zero. Se verdadeiro, incrementa o valor da variável de força.

 força = 0

se lower_alpha_count >= 1:
força += 1

se upper_alpha_count >= 1:
força += 1

se número_contagem >= 1:
força += 1

se special_char_count >= 1:
força += 1

se comprimento == 1:
força += 1

se comum == 1:
força += 1

selen(repetido)== 0:
força += 1

Use a string de várias linhas (três aspas) para exibir várias linhas de texto em uma única instrução de impressão. Use o literal Sring Interpolation ou f-strings ou para exibir a contagem de características. Você pode conseguir isso escrevendo f no início da string na instrução de impressão e coloque as variáveis ​​entre chaves. Você usa a interpolação de string porque o conteúdo dentro da instrução print é uma string, mas o valor das variáveis ​​é um número inteiro.

imprimir(f"""Sua senha tem:- 
{lower_alpha_count} letras minúsculas
{upper_alpha_count} letras maiúsculas
{number_count} dígitos
{special_char_count} caracteres especiais
{comprimento} comprimento
{comum} comum
{repetido} repetido
"Pontuação da senha: {força}/7""")

Por fim, use a instrução input para receber a senha do usuário e passá-la para o check_password_strength função. Com base na força da senha, o programa exibirá a pontuação junto com a contagem das características presentes na senha.

senha = entrada("Digite a senha: ")
check_password_strength (senha)

Saída do verificador de força da senha

Ao inserir uma senha forte com base nas características mencionadas, o programa Python exibe a força como 7/7:

Ao inserir uma senha fraca e comum, o programa Python exibe a força como 1/7:

Senhas e Segurança

Embora você possa definir a senha mais forte de todas, existem outras maneiras de um hacker invadir seu sistema. 95% dos ataques cibernéticos são resultado de erro humano. Um dos métodos mais comuns usados ​​pelos hackers é a engenharia social. O hacker pode enviar links falsificados para mídias sociais ou sites de comércio eletrônico que parecem legítimos, mas comprometem sua senha se você os usar.

Para se proteger contra essas técnicas, abra apenas links de uma fonte confiável e apenas insira ou armazene informações importantes com segurança.