Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Los datos son un activo vital en el mundo digital actual. Más de ocho millones de personas son víctimas de piratas informáticos cada año y cada día se producen más de 2200 ciberataques. Con una tasa tan alarmante de delitos cibernéticos, se convierte en una prioridad utilizar las mejores prácticas para protegerse contra los piratas informáticos. Uno de los aspectos más importantes de cualquier cuenta es su contraseña.

Si un pirata informático compromete su contraseña, puede obtener acceso a su información personal, e incluso a su cuenta bancaria, en cuestión de minutos. Aunque esto suene aterrador, puede aprender a proteger sus contraseñas utilizando las mejores prácticas creando su propio programa Python para comprobar su solidez.

Diferentes reglas para establecer contraseñas seguras

Algunas reglas de contraseña seguras que podría considerar implementar son:

instagram viewer
  1. La contraseña debe tener al menos 12 caracteres. Cuanto más larga sea la contraseña, menos posibilidades hay de que un ataque de fuerza bruta la comprometa.
  2. La contraseña debe contener una combinación de letras minúsculas, letras mayúsculas, números y caracteres especiales.
  3. Evite repetir caracteres en la contraseña.
  4. No debe contener detalles personales como nombres, números de teléfono o cualquier cosa que alguien pueda adivinar fácilmente.
  5. No debería ser una palabra común del diccionario, aunque puede usar palabras en frases de contraseña más largas.
  6. La contraseña no debe ser la misma para varias cuentas. Puede configurar un administrador de contraseñas para autocompletar diferentes contraseñas para varios sitios sin recordar cada una de ellas.

Hay diferentes maneras de crea una contraseña irrompible que puedas recordar. Algunos de ellos utilizan rimas infantiles, citas de películas, jerga de la industria y más.

Cómo verificar la seguridad de su contraseña usando Python

Puede crear un programa para probar la seguridad de la contraseña al verificar las características anteriores. Para esta compilación, necesitará dos módulos: cadena y colecciones.

También puede utilizar el conseguir pase para ocultar una contraseña cuando el usuario la ingresa. Esto ayuda a proteger su contraseña cuando tiene que escribirla en público. Para instalar getpass en su entorno local, abra una terminal y escriba:

pepita instalar obtener el pase4

Puede usar la clase String para comprobar si un carácter es una letra, un dígito o un símbolo. Puede hacer uso de las colecciones para verificar si hay caracteres en la contraseña que se repiten.

Use la palabra clave def para definir una función llamada verificar_contraseña_fortaleza() y pasarle la contraseña que obtendrá como parámetro.

Inicializar seis variables: recuento_alfa_inferior, recuento_alfa_superior, number_count, especial_char_count, longitud, común a cero. Estos verificarán la presencia de un alfabeto en minúsculas, un alfabeto en mayúsculas, dígitos, caracteres especiales, longitud, repetición de caracteres en una contraseña.

Pase la contraseña que obtenga del usuario al lista() función para convertirlo en una lista de caracteres. Usando el ciclo for, itere sobre cada carácter de la lista. Utilice la declaración if-else para verificar si el carácter es un alfabeto en minúsculas, un alfabeto en mayúsculas, un número o un carácter especial y actualice el conteo respectivamente.

Puede suponer que cualquier otra cosa del alfabeto o el número es un carácter especial. Para mayor restricción, puede almacenar caracteres especiales como una cadena y verificar si el carácter de la contraseña está presente en ella. Además, algunos sitios web le permiten usar espacios en blanco en una contraseña. Puede establecer una variable diferente e incrementarla o considerarla en el recuento de caracteres especiales.

importar cadena
importar colecciones

definitivamenteverificar_contraseña_fortaleza(contraseña):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = longitud = común = 0

para char en lista(contraseña):
sicarbonizarse en cadena.ascii_lowercase:
recuento_alfa_inferior += 1
elif carbonizarse en cadena.ascii_uppercase:
recuento_alfa_superior += 1
elif carbonizarse en cadena.dígitos:
numero_cuenta += 1
demás:
recuento_de_caracteres_especiales += 1

Necesitará una lista de contraseñas o una base de datos para verificar si la contraseña del usuario es común. Puede descargar una lista de un millón de contraseñas más populares de Repositorio GitHub de credenciales comunes de SecLists.

Guarde el archivo de texto como lista_de_contraseñas_comunes.txt. Utilice la instrucción with para realizar el manejo de excepciones y abrir el archivo de contraseñas en modo de lectura. Utilizar el leer() función para obtener el contenido presente en el archivo y almacenarlo en una variable llamada contenido.

Si la contraseña que ingresa el usuario no está presente en la lista de contraseñas comunes, incremente el valor de la variable común en uno.

conabierto("común_contraseña_lista.txt", 'r') comoarchivo:
contenido = archivo.leer()

si la contraseña no está en el contenido:
común += 1

Para verificar la longitud de la contraseña, simplemente pásela al largo() y comprueba si es mayor o igual a doce. Si es así, incremente el valor de la variable de longitud.

siLen(contraseña) >= 12:
longitud += 1

Para verificar la repetición de caracteres en la contraseña, use la subclase Counter de Collections. Counter es una colección desordenada de pares de clave y valor donde la clave es el elemento en sí y el valor es el recuento del elemento.

Use el método de comprensión de listas para hacer una lista de caracteres repetidos del diccionario que obtiene usando colecciones. Itere sobre el diccionario y verifique si el conteo del carácter es mayor que uno. Si el recuento es mayor, agréguelo a una lista y guárdelo en repetido.

 countOfWords = colecciones. Contador (contraseña)
repetido = [i for i in countOfWords if countOfWords[i] > 1]

Ahora que tiene los valores de las características individuales, inicialice una variable llamada fuerza a cero. Como sugiere el nombre, verá esta variable para verificar la seguridad de la contraseña. El sistema de puntuación es de siete, un punto por cada inclusión de un carácter y característica de una contraseña segura.

Compruebe si el recuento de letras en minúsculas, letras en mayúsculas, números, caracteres especiales es mayor o igual a uno e incremente la fuerza en uno para cada presencia. Del mismo modo, verifique si la longitud y la variable común son iguales a uno y si la longitud del carácter repetido es igual a cero. Si es verdadero, incrementa el valor de la variable de fuerza.

 fuerza = 0

si lower_alpha_count >= 1:
fuerza += 1

si upper_alpha_count >= 1:
fuerza += 1

si number_count >= 1:
fuerza += 1

si special_char_count >= 1:
fuerza += 1

si longitud == 1:
fuerza += 1

si común == 1:
fuerza += 1

siLen(repetido)== 0:
fuerza += 1

Utilice la cadena de varias líneas (tres comillas) para mostrar varias líneas de texto en una sola instrucción de impresión. Utilice la interpolación de cadenas literales o f-strings o para mostrar el recuento de características. Puedes lograr esto escribiendo F al comienzo de la cadena en la declaración de impresión y encierre las variables entre corchetes. Utiliza la interpolación de cadenas ya que el contenido dentro de la declaración de impresión es una cadena, pero el valor de las variables es un número entero.

imprimir(F"""Su contraseña tiene: - 
{lower_alpha_count} letras minúsculas
{upper_alpha_count} letras mayúsculas
{number_count} dígitos
{special_char_count} caracteres especiales
{longitud} longitud
{común} común
{repetido} repetido
"Puntuación de la contraseña: {fortaleza}/7""")

Finalmente, use la declaración de entrada para recibir la contraseña del usuario y pásela al verificar_contraseña_fortaleza función. Según la seguridad de la contraseña, el programa mostrará la puntuación junto con el recuento de las características presentes en la contraseña.

contraseña = entrada ("Introduce la contraseña: ")
check_password_strength (contraseña)

Salida del verificador de seguridad de la contraseña

Al ingresar una contraseña segura basada en las características mencionadas, el programa Python muestra la fuerza como 7/7:

Al ingresar una contraseña débil y común, el programa Python muestra la fuerza como 1/7:

Contraseñas y Seguridad

Si bien puede establecer la contraseña más segura, hay otras formas en que un pirata informático puede ingresar a su sistema. El 95% de los ciberataques son el resultado de un error humano. Uno de los métodos más comunes que utilizan los piratas informáticos es la ingeniería social. El pirata informático puede enviarle enlaces falsificados a redes sociales o sitios web de comercio electrónico que parecen legítimos, pero que comprometen su contraseña si los usa.

Para protegerse contra estas técnicas, asegúrese de abrir solo enlaces de una fuente confiable y solo ingrese o almacene información importante de forma segura.