Generar Claves Aleatorias

Puede que en algún momento necesitemos generar claves aleatorias dentro de nuestras aplicaciones, por ejemplo, yo las estoy utilizando para crear identificadores únicos al momento de guardar datos en una tabla, la siguiente función permite obtener cadenas de caracteres aleatorias con una longitud determinada.

El algoritmo funciona de la siguiente manera

1. Se crea un arreglo que contienen letras mayúsculas, minúsculas y números, en total 62 caracteres
2. Se generan números aleatorios entre 0 y 61, la idea obtener en forma aleatoria una posición dentro del arreglo
3. Recuperamos el valor de la entrada en el arreglo (Paso 1) según el índice aleatorio (Paso 2).

 Los resultados por ejemplo pueden ser por ejemplo mHpV7HzmFRMSEh6k0dh6, como podemos observar las secuencia en este ejemplo es de longitud 20 y está compuesta de forma aleatoria de letras y números.

La función es la siguiente


Private Function GeneraClaveAleatoria(ByVal Longitud As String) As String


Dim Clave As String = “”

Dim Valores(61) As Char

Dim i As Integer

Dim j As Integer

j = 64

For i = 0 To 61

j = j + 1

Valores(i) = Chr(j)

Select Case j

Case 90

j = 96

Case 122

j = 47

End Select

Next

Randomize()

For i = 1 To Longitud

Clave = Clave & Valores(Int(61 * Rnd()))

Next

Return Clave

End Function

La llamada a la función para generar una clave de 20 caracteres aleatorios sería

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MsgBox(GeneraClaveAleatoria(20))

End Sub

Una variante sería generar claves donde al principio solo salga letras y luego números

Hasta la próxima

Escribe un comentario

Tienes que iniciar sesión para escribir un comentario.