Cómo crear un generador de contraseñas seguras

Ya sabes que hacer. No use contraseñas simples como su cumpleaños o el nombre de su mascota iguana. No uses la misma contraseña en todas partes. Cree una contraseña larga, aleatoria y única para cada sitio web. No intente esto sin ayuda: obtenga un administrador de contraseñas. Una vez que tenga todas sus contraseñas guardadas de forma segura en el administrador, reemplace las débiles o falsas con contraseñas únicas que nadie podría adivinar, y ni siquiera usted podría recordar. Un hacker podría adivinar una contraseña simple como Fido o descifrarla por fuerza bruta, pero nadie podría adivinar algo como P5 $ e?KqA + unh $ RhPTlp1, y la fuerza bruta tomaría un tiempo imposible.

La pregunta es ¿dónde estás? conseguir esas contraseñas al azar? Casi todos los administradores de contraseñas vienen con su propio generador de contraseñas aleatorias, algunas de las cuales son mejores que otras. En la mayoría de los casos, sin embargo, el programa usa lo que se llama un pseudoaleatorio algoritmo. En teoría, un pirata informático que conoce el algoritmo y tiene acceso a una de sus contraseñas generadas podría replicar todas las contraseñas generadas posteriormente (aunque sería difícil). Si eres lo suficientemente paranoico, quizás quieras crear tu propio generador de contraseñas aleatorias. Podemos ayudarlo a construirlo, utilizando Microsoft Excel.

Algunas tareas de seguridad están innegablemente más allá del ámbito del hágalo usted mismo. No es probable que construya su propia red mundial de servidores VPN, por ejemplo. No vas a improvisar una utilidad antivirus hecha a mano. Pero construir este pequeño proyecto no requiere conocimientos avanzados, solo la capacidad de seguir instrucciones. No utiliza macros ni cosas sofisticadas, solo funciones ordinarias de Excel, aunque es posible que algunas no las haya visto antes. Tenga en cuenta que este proyecto necesariamente se basa en el algoritmo pseudoaleatorio de Excel. La diferencia aquí es que los delincuentes pueden estudiar el generador de contraseñas integrado en cualquier administrador de contraseñas disponible públicamente, mientras que no tienen acceso al tuyo.

Una advertencia. necesitas un Actual Versión de Excel para hacer que este proyecto funcione. Office 2019 o posterior hará el trabajo, al igual que la última versión de Office 365. Si no está seguro, Microsoft explica cómo obtener la última versión.


Resumen

Crear el andamio del generador de contraseñas

Primero, creemos el andamio que enmarcará nuestro generador de contraseñas, es decir, las etiquetas y los componentes estáticos. Coloque las cosas exactamente en las celdas como se describe a continuación, para que las fórmulas funcionen. Una vez que lo tengas funcionando, puedes modificarlo para que sea totalmente tuyo.

Generador de contraseñas Figura 1

En la celda B1, ingrese «Generador de contraseñas aleatorias», o el título que desee para su proyecto. Comenzando en la celda B3 y bajando, ingrese las etiquetas «Longitud», «Letras mayúsculas», «Letras minúsculas», «Dígitos» y «Caracteres especiales». Omita la celda B8, ingrese «Presione F9 para regenerar» en B9 y «CONTRASEÑA» en B10. Debería verse como la imagen de arriba.

En la celda C3, ingrese 20 o la longitud de su contraseña predeterminada preferida. Ingrese «Sí» en las próximas cuatro celdas debajo de él. Ahora ingrese todo el alfabeto en mayúsculas en la celda D4 y todo el alfabeto en minúsculas en D5. Ingrese los 10 dígitos en D6 y los caracteres especiales que desee usar en D7. Consejo profesional: coloque el 0 al final, no al principio, en la lista de dígitos, o Excel lo eliminará. El andamio completo debería verse así:

Generador de contraseñas Figura 2


Agregue las fórmulas que generan contraseñas

Con el andamio en su lugar, es hora de agregar las fórmulas. Para comenzar, necesitamos construir una cadena de texto que incluya todos los caracteres que hemos elegido usar. La fórmula para hacerlo parece un poco complicada, pero en realidad es larga. Ingrese esta fórmula en la celda D8:

= SI (C4 = «Sí», D4, «») & SI (C5 = «Sí», D5, «») & SI (C6 = «Sí», D6, «») & SI (C7 = «Sí» , D7, «»)

El operador & une cadenas de texto. Lo que dice esta fórmula es que, para cada uno de los cuatro conjuntos de caracteres, si la celda adyacente contiene Sí, incluya el conjunto de caracteres. Pero si esa celda contiene algo que no sea Sí (independientemente de mayúsculas o minúsculas), no lo incluya. Pruebalo ahora; cambie algunas de las celdas Sí a No, Nay o Meh. La cadena de caracteres disponibles cambia para coincidir con lo que hizo.


Usa un poco de magia de Excel

Cuando creé esta hoja de cálculo por primera vez, utilicé una técnica simple para crear una contraseña aleatoria. Comencé con una fórmula que devuelve un carácter aleatorio extraído de esa cadena que vive en la celda D8:

= MEDIO (D8, ALEATORIO ENTRE (1, LARGO (D8)), 1)

Esto le dice a Excel que genere un número aleatorio desde uno hasta la longitud de la cadena y devuelva un carácter en esa ubicación. Pegué 40 repeticiones de esa fórmula para hacer una cadena de 40 caracteres aleatorios. Y usé la función IZQUIERDA () para cortar el resultado a la longitud deseada. No fue bonito. ¡La fórmula final pesó 1329 caracteres!

Gracias a un poco de magia de Excel que aprendí desde entonces, mi fórmula actual para generar una contraseña aleatoria es mucho más pequeña, solo 78 caracteres:

= UNIÓN DE TEXTO («», VERDADERO, MEDIO (D8, ALEATORIO ENTRE (SIGNO (FILA (INDIRECTO («1:» & C3))), LEN (D8)), 1))

Si solo quieres hacer uso de esta fórmula sin preocuparte por cómo funciona, ¡no hay problema! Cópielo en la celda C10. Verá una contraseña aleatoria, una que cambia cuando presiona F9 para volver a calcular, como magia.


Aprenda un poco de magia de Excel

¿Qué es eso, dices? ¿Quieres saber por qué funciona esa loca fórmula? Yo puedo ayudar con eso. Pero primero, una confesión. no se si este es el mejor manera de hacer lo que hice. Acabo de jugar hasta que lo hice funcionar. Puede haber una solución más elegante.

En primer lugar, cumpla con la función TEXTJOIN (). Esta joya poco conocida toma una serie de valores como entrada y los combina. Es una adición bastante reciente, que requiere al menos Office 2019 o Microsoft 365. Hay otras dos entradas antes de la matriz, un delimitador para separar los valores y una opción de verdadero/falso que le dice si ignorar los valores vacíos. Intentalo. En una hoja nueva, escriba algunos nombres en la columna A, filas 1 a 5. Ingrese esta fórmula en la celda B1:

= UNIÓN DE TEXTO («***», VERDADERO, A1: A5)

La celda B1 muestra los nombres de A1 a A5 como una sola cadena de texto, con tres asteriscos entre cada uno. Aquí hay otro ejemplo.

= UNIÓN DE TEXTO («y», VERDADERO, FILA (A1: A9))

Antes de copiar esta función en una hoja de cálculo, ¿puede adivinar lo que hace? A1: A9 es una matriz, y la función FILA () devuelve una matriz de resultados, los números del 1 al 9. TEXTJOIN los une, con «y» entre ellos. Puede utilizar esta técnica para procesar listas de números de otras formas.

Generador de contraseñas Figura 3

Sin embargo, no necesitamos una lista de números. Solo necesitamos que Excel extraiga un carácter aleatorio una cierta cantidad de veces. Una vez más, esta fórmula saca uno carácter aleatorio:

= MEDIO (D8, ALEATORIO ENTRE (1, LARGO (D8)), 1)

Para hacer que Excel procese esa función, digamos, ocho veces, necesitamos reemplazar el dígito 1 que define el extremo inferior del rango aleatorio con una fórmula que devuelve una matriz de ocho 1. La función SIGN () devuelve 1 para cualquier número positivo, así que lo usaremos para cambiar la matriz de números ascendentes a una matriz de 1. Luego usamos TEXTJOIN () para combinar los resultados. Esta fórmula devuelve una contraseña de ocho caracteres hecha de caracteres aleatorios de la cadena que se encuentra en D8:

= UNIÓN DE TEXTO («», VERDADERO, MEDIO (D8, ALEATORIO ENTRE (SIGNO (FILA (1: 8)), LONGITUD (D8)), 1))

¡Casi ahí! Lo que necesitamos en lugar del rango 1: 8 es un rango de 1 a cualquier valor que esté en C3, la longitud deseada. La práctica función INDIRECTO () hace el trabajo. Toma una cadena de texto que describe una celda o ubicación y devuelve esa celda o ubicación. Con eso, la fórmula está completa. Aquí está otra vez:

= UNIÓN DE TEXTO («», VERDADERO, MEDIO (D8, ALEATORIO ENTRE (SIGNO (FILA (INDIRECTO («1:» & C3))), LEN (D8)), 1))


Ajuste fino del generador de contraseñas

El generador de contraseñas es totalmente funcional en este punto. Si estás contento con él tal como está, genial: ¡lo has hecho! Pero si está interesado, puede mejorar su apariencia y funcionalidad de varias maneras. Para empezar, haga clic con el botón derecho en la D en la parte superior de la columna D y seleccione Ocultar en el menú. Ahora no tiene que ver las listas de conjuntos de caracteres ni los cálculos intermedios.

Por lo general, desea establecer límites superior e inferior para la longitud en un generador de contraseñas. Además, si ingresa algo que no sea un número en el campo Longitud, la fórmula falla. Podemos arreglarlo. Haga clic en la celda C3, que define la longitud, haga clic en Datos en la cinta, haga clic para abrir Herramientas de datos y seleccione Validación de datos.

Recomendado por Nuestros Editores

Generador de contraseñas Figura 4

En la ventana emergente resultante, haga clic en el menú desplegable debajo de Permitir y elija Número entero. Desmarque la casilla Ignorar en blanco y configure el Mínimo en 8 y el Máximo en, digamos, 64. Cuando se vea como la captura de pantalla aquí, haga clic en la siguiente pestaña, Mensaje de entrada. Como mensaje de entrada, escriba «Ingrese una longitud de 8 a 64». Copie ese texto en el portapapeles y péguelo en el campo Mensaje de error de la pestaña Alerta de error, luego haga clic en Aceptar. Ahora, cuando hace clic en la celda Longitud, recibe un mensaje para ingresar una longitud válida y, si comete un error, recibe un mensaje de error informativo.

¿Listo para un ajuste final? Haz clic en la celda C4, la celda justo a la derecha de la etiqueta «Letras mayúsculas». Una vez más, haga clic en Datos en la cinta y seleccione Validación de datos. Elija Lista en el menú desplegable, desmarque Ignorar en blanco, haga clic en el cuadro Fuente e ingrese «Sí, No» sin las comillas. En la pestaña Mensaje de entrada, desmarque la casilla Mostrar mensaje de entrada en la parte superior. En la página Alerta de error, ingrese «Sí o No» como mensaje de error. Haga clic en Aceptar para finalizar. Copie esta celda a las tres celdas debajo de ella.

¡Eso es todo! Ahora esas cuatro celdas solo aceptan Sí o No como valores. Mejor aún, cada uno ahora ha adquirido una lista desplegable que le permite elegir uno de esos valores.

En este punto, es posible que desee ser creativo y agregar formato para que su generador de contraseñas se vea menos industrial. Elija las fuentes que le gusten, agregue color, ajuste las cosas hasta que se vea genial para usted.

Generador de contraseñas Figura 5

Finalmente, bloqueémoslo, para que no destruyas accidentalmente una fórmula ingresando datos en la celda incorrecta. Resalte las celdas C3 a C7 (esa es la celda de longitud más las cuatro celdas sí/no), haga clic con el botón derecho y seleccione Formato de celdas. Haga clic en la pestaña Protección y desmarque la casilla de verificación llamada Bloqueado, luego haga clic en Aceptar. Haga clic en Revisar en la cinta y haga clic en Proteger hoja. Simplemente haga clic en Aceptar para aceptar la configuración en el cuadro de diálogo resultante; no está tratando de proteger la hoja con una contraseña, simplemente para protegerla contra los dedos torpes. ¡Guarda el glorioso resultado!


Hacer un generador de contraseñas en Google Sheets

Soy un genio de Excel, y lo he sido desde antes de que existieran las Hojas de cálculo de Google. ¡Quizás incluso desde que existió Google! Pero sé que muchas personas confían en Google Sheets, así que lo encendí para asegurarme de que sea compatible con este proyecto.

Seguí mis propias instrucciones para crear el generador de contraseñas en Hojas de cálculo y descubrí que todo funcionaba a la perfección, hasta la fórmula que muestra un carácter aleatorio. Todo funcionó, pero al presionar F9 no se actualizó con un nuevo carácter aleatorio. Consultando a Google, descubrí que para forzar una actualización debe presionar F5, actualizando así toda la página, o cambiar el valor de cualquier celda. Es incómodo, pero factible. Cambié el aviso para decir «Presione F5 para regenerar».

Encontré otra diferencia cuando copié la función más importante que en realidad crea la contraseña. No funcionó. Simplemente devolvió un solo carácter aleatorio. Para que Sheets manejara los cálculos de matriz involucrados, tuve que pasar explícitamente la fórmula existente a la función ArrayFormula (). En Sheets, entonces, la fórmula que genera una contraseña aleatoria se convierte en:

= ArrayFormula (TEXTJOIN («», TRUE, MID (D8, RANDBETWEEN (SIGN (ROW (INDIRECT («1:» & C3))), LEN (D8)), 1)))

Generador de contraseñas Figura 6

No entraré en detalles aquí, pero logré recrear las reglas de validación de datos y también oculté las columnas no deseadas. Si usa Hojas de cálculo en lugar de Excel, este proyecto aún puede funcionar para usted.


¡Lo hiciste!

Ya sea que haya aceptado la versión básica de esta hoja de cálculo o haya aplicado los ajustes sofisticados, ahora tiene un generador de contraseñas que escribió usted mismo. Es cierto que Excel usa un generador de números pseudoaleatorios, pero puede agregar su propia aleatoriedad lanzando un dado y tocando F9 tantas veces antes de aceptar la contraseña generada. Y aunque un pirata informático podría trabajar para aplicar ingeniería inversa al generador de contraseñas en un producto de administración de contraseñas utilizado por millones, su utilidad única simplemente no está en el radar. ¡Lo hiciste!

¿Te gusta lo que estás leyendo?

Matricularse en Vigilancia de la seguridad boletín de noticias para nuestras principales historias de privacidad y seguridad directamente en su bandeja de entrada.

Continua leyendo