Acceder

Trucos y tretas en Excel VBA - Generador de passwords aleatorios

¿Te ha sucedido que te dicen que te inventes un password y lo único que se te ocurre es "123"?  Hoy te mostraré cómo crear tu propio generador de passwords en Excel.

¿Cómo crear el generador de passwords?

  1. Abre un libro en blanco en Excel
  2. Oprime Alt F11
  3. Haz click derecho en la zona indicada


     
  4. Selecciona Insert > Module
  5. Pega el código que voy a proporcionar en la zona indicada en el diagrama.

El código que debes pegar es el siguiente:

 
Function GenerarPassword() As String
    Longitud = 9
    Limite1 = 30
    Limite2 = 60
    Limite3 = 100
    pass = ""
    Randomize Timer
    For i = 1 To Longitud
        r = Rnd() * 100
        If r <= Limite1 Then
            c = Rnd() * 25 + 97 'minúscula
        ElseIf r <= Limite2 Then
            c = Rnd() * 25 + 65 'Mayúscula
        ElseIf r <= Limite3 Then
            c = Rnd() * 9 + 48 'Números
        End If
        pass = pass & Chr(c)
    Next i
    GenerarPassword = pass
End Function

No olvides salvar el archivo de Excel. 

  • Salva el archivo con extensión XLSM para que guarde la hoja de Excel y el código de macro que acabamos de agregar. 
  • Si salvas como XLSX o XLS o CSV, el código de la macro que hemos agregado, no se salvará.

En ese código puedes personalizar algunas variables.

  • En el código la longitud del password es de 9 pero tu puedes cambiar esto.
  • Los límites establecen la proporción de cada tipo de caracter.  En este ejemplo, tienes mayúsculas, minúsculas y números.  No hay caracteres especiales. Si el número aleatorio genera un número entre 0 y 30, habrá una minúscula, de 30 a 60 habrá mayúscula y de 60 a 100 habrá número.
  • Puedes cambiar esa proporción 30-30-40 a lo que tu desees.  Puedes personalizar al gusto.
  • Para agregar caracteres especiales, tendrías que editar esta función, sabiendo programar VBA.  No quise agregar caracteres especiales porque no todos los sistemas admiten ese tipo de caracteres. Y los que sí, puede que admitan algunos y otros no.  Entonces para mantener estas instrucciones simples, he omitido la generación de password con caracteres especiales.

¿Cómo usar?

Para usar esta función que hemos creado, en cualquier celda, sólo debes escribir lo siguiente.

Ten en cuenta lo siguiente:

  • Cada vez que edites la celda, generará un nuevo password.
  • Este procedimiento genera un password nuevo cada vez.  Si perdiste tu password, esta macro no te ayudará a recuperarlo.
  • La longitud mínima de un password debe ser de 8 caracteres. De otro modo te pueden hackear con facilidad.  Mientras más largo el password más dificil sera de hackear, y con cada caracter adicional aumenta la dificultad exponencialmente.

Como puedes ver, puedes inventar tus propias funciones en Excel VBA y usarlas como si fueran una función más de Excel.  Eso sí 

¿Que hago?  ¡Necesito los passwords por escrito!

Te dicen que no debes escribir los passwords.  Pero temes olvidar los passwords o debes viajar y necesitas tus passwords contigo. ¿Qué hacer?

  • Diseñas una tabla de códigos para cada letra, número y caracteres especiales.  Usas garabatos arbitrarios que vas a memorizar.  La tabla de códigos es por si olvidas alguno de los garabatos. Los garabatos deben diferenciarse entre si para que no confundas nada.
  • Guardas tu tabla de códigos, escondida en un lugar seguro. En otra hoja escribes passwords usando garabatos y llevas esa hoja contigo. 
  • Si pierdes la hoja de paswords con garabatos, debes diseñar una nueva tabla y no usar los garabatos anteriores.  El que encuentre los garabatos no sabrá qué significan los garabatos, si no le cuentas.
  • Si pierdes la tabla de códigos, debes diseñar una tabla nueva y destruir las hojas con password en forma de garabato.
  • Para destruir la hoja de passwords es mejor usar productos de limpieza, tomando las precauciones para no dañar tu salud.  Si quemas la hoja de códigos podrías causar un incendio, y esa no es la idea.
  • En algunas familias a veces existe tentación, y puede haber acceso no autorizado por parte de familiares. En ese caso lo mejor es que la tabla de códigos esté afuera de casa en un lugar inaccesible, algo así como enviar la tabla a un cofre de tesoro enterrado en una jungla en Shangri La.  Evita molestias y disgustos.
  • Lo ideal es que memorices los passwords y no los escribas, y que los cambies cada 3 meses, pero si no puedes hacer eso, tendrás que hacer algo distinto.
  • La idea es que para tener el password necesitas dos piezas, en lugar de una. Y del manejo que hagas de esas dos piezas depende la seguridad de tus passwords.  Eso ayuda a tener passwords largos y complicados que harán más difícil la vida delos hackers.

"Yo no quiero un generador de passwords"

Puede ser que no quieras un generador de passwords, y eso está bien.

  • Si no lo vas a tener, recuerda nunca compartir passwords, ni siquiera con personas en quien confías. 
  • También recuerda que los hackers usan diccionarios de passwords robados, y con inteligencia artificial agregan variantes a esos passwords.  Por ejemplo, si tu password era "elite" antes te sentías seguro reemplazando con números para que se lea "3l1t3".  Siento decirte que esa treta ya la conocen.  
  • Al usar un generador de passwords aleatorios como este, obligas a los hackers a no usar diccionarios, sino usar algoritmos de fuerza bruta, que van buscando una por una toda combinación de caracteres posibles, algo así como probar una por una, todas las combinaciones de una caja fuerte.
  • Para hackear passwords de 7 caracteres, con la ayuda de GPUs, pueden encontrar tu password en pocos segundos. Con 7 caracteres hay cerca de 3 billones de combinaciones que el GPU resuelve en pocos segundos. Así ves el alto poder de procesamiento de un GPU.  Con 8 caracteres aumentas a 218 billones de combinaciones. Eso está un poco mejor, pero  a futuro puede ser insuficiente.
  • A como agregues más longitud a tu password, aumentas exponencialmente el tiempo de procesamiento. Si hay 26 letras mayúsculas, 26 minúsculas y 10 números, con cada caracter adicional que agregues, aumentas 62 veces el tiempo de procesamiento del hacker. Si el hacker iba a durar una cantidad equis de tiempo para encontrar tu password, al agregarle 5 caracteres al password original, esa cantidad equis de tiempo se multiplica por casi mil millones (62 elevado a la quinta potencia).

¿No quieres generar passwords y prefieres usar frases largas adulteradas?  Eso le facilita a los criminales su trabajo.  Tu password debería ser tan único que, entre los millones y millones de passwords robados de todo el mundo, incluyendo variaciones, el algoritmo con inteligencia artificial, no debería dar en el clavo.  ¿Es así de fuerte tu password inventado por tí?

Usando este simple algoritmo para passwords aleatorios y cuando mucho una tabla de códigos le quitas al hacker la posibilidad de robarte el password, porque el hacker no puede leer el papel o tu cabeza, a menos que tenga medios electrónicos para verte o escucharte. El riesgo se traslada a la gente que está cerca de tí en tiempos de distancia social. 

Tú decides.

¿Te ha gustado el artículo?

Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico.

Accede a Rankia
¡Sé el primero en comentar!