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


No hay comentarios: