en

MSGuayaquil

Recursos esenciales para el desarrollador .NET

Blog Comunitario

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

Publicado Jun 14 2007, 09:32 AM por WJAMA
Archivado en: ,

Comentarios

 

WJAMA dijo:

El tipo de dato del parámetro de ingreso en la función debe ser entero y no string

June 14, 2007 10:34 AM
 

Jose Luis dijo:

Excelente loco.. te pasastes y me salvastes del deber que tenia que hacer...

September 16, 2008 11:50 AM

Deja tu Comentario

(requerido)  
(opcional)
(requerido)  

Ingresa los números de la imagen:
© 2007 MSGuayaquil. Todos los derechos reservados.
Powered By IIS 6 Powered By ASP.NET 2.0 Ofrecido por Community Server (Commercial Edition) Powered By SQL Server 2005
Creado y Administrado por Julio Casal