Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: {_The_Alwar_} en 11 Octubre 2005, 18:02 pm



Título: Generar Codigos Alfanumericos
Publicado por: {_The_Alwar_} en 11 Octubre 2005, 18:02 pm
¿Como puedo crear codigos alfanumericos de x digitos? existe alguna funcion o api para esto? Si hay algun post donde se explique esto, avisenme
Saludos!


Título: Re: Generar Codigos Alfanumericos
Publicado por: noob_Setup en 11 Octubre 2005, 18:09 pm
hola lo que puedes hacer es escribir en un txt o un dat a travez de random. Busca por ahi
En las msdn tienes ayuda sobre el tema

saludos


Título: Re: Generar Codigos Alfanumericos
Publicado por: {_The_Alwar_} en 11 Octubre 2005, 18:12 pm
si pero ramdon me genera un numerito, y yo qero una clave de 10 numeros y letras, buscare en la msdn
Gracias!


Título: Re: Generar Codigos Alfanumericos
Publicado por: c0rrupt_gamer en 12 Octubre 2005, 12:05 pm
Podrias generas una variable con random k diera numeros aleatorios entre 1 y (num.caracteres del text), k diera unos cuantos valores y los caracteres correspondientes cambiarlos a letras.

Ej: text = 10 caracteres
variable aleatoria te da los valores 2, 5 y 9.
Al segundo, quinto y noveno caracter le poner el Chr$(pa pasarlo a letra) y ya esta.


Título: Re: Generar Codigos Alfanumericos
Publicado por: {_The_Alwar_} en 12 Octubre 2005, 12:37 pm
podria, pero si me diera el 1?? eso en ascii me parece q es nulo, weno ya me pasaron un codigo, y creo q mas o menos es como tu dices, os lo pego por si a alguien le interesa:

Código:
Private Function Palabra(iCarMin As Integer, iCarMax As Integer) As String
Dim sPalabra As String
Dim iTotalCarac As Integer
   
    If iCarMin > iCarMax Then Exit Function
   
    iTotalCarac = Int((iCarMax - iCarMin + 1) * Rnd + iCarMin)
    For j = 1 To iTotalCarac
        sPalabra = sPalabra + Chr(Int((122 - 97 + 1) * Rnd + 97))
    Next j
    Palabra = sPalabra
End Function
Nota: iCarMin = Caracteres minimos que quieres que tenga la cadena
iCarMax = Caracteres Maximos que tendra la cadena


Título: Re: Generar Codigos Alfanumericos
Publicado por: c0rrupt_gamer en 12 Octubre 2005, 13:33 pm
Citar
sPalabra = sPalabra + Chr(Int((122 - 97 + 1) * Rnd +97))


1 question: si le pones el chr$ a todo solo deberian salir letras, no?



Título: Re: Generar Codigos Alfanumericos
Publicado por: {_The_Alwar_} en 12 Octubre 2005, 14:35 pm
Si el procedimiento ahora solo hace letras, pero weno me vale, ¿se les ocurre como hacer para que intercale numeros?


Título: Re: Generar Codigos Alfanumericos
Publicado por: dexer en 12 Octubre 2005, 15:17 pm
Citar
Dim letra As String
Dim final As String
Dim DigitosMax As Integer
DigitosMax = 10 'NUMERO DE DIGITOS
Dim i As Integer
For h = 1 To DigitosMax
Randomize Timer
i = Rnd * 35 + 1
Select Case i
Case 10
 letra = "A"
Case 11
 letra = "B"
Case 12
 letra = "C"
Case 13
 letra = "D"
Case 14
 letra = "E"
Case 15
 letra = "F"
Case 16
 letra = "G"
Case 17
 letra = "H"
Case 18
 letra = "I"
Case 19
 letra = "J"
Case 20
 letra = "K"
Case 21
 letra = "L"
Case 22
 letra = "M"
Case 23
 letra = "N"
Case 24
 letra = "O"
Case 25
 letra = "P"
Case 26
 letra = "Q"
Case 27
 letra = "R"
Case 28
 letra = "S"
Case 29
 letra = "T"
Case 30
 letra = "U"
Case 31
 letra = "V"
Case 32
 letra = "W"
Case 33
 letra = "X"
Case 34
 letra = "Y"
Case 35
 letra = "Z"
Case Else
 letra = i
End Select
final = final & letra
Next h
If Len(final) > DigitosMax Then
 final = Mid(final, 1, DigitosMax) 'Por si se pasa de los DigitosMAX xD
End If
Text1.Text = final
puedes añadir mas letras o lo que quieras cambiando el RNd y añadiendo mas Case X


Título: Re: Generar Codigos Alfanumericos
Publicado por: c0rrupt_gamer en 12 Octubre 2005, 15:20 pm
Citar
For j = 1 To iTotalCarac
        sPalabra = sPalabra + Chr(Int((122 - 97 + 1) * Rnd + 97))
    Next j

Pues con una variable aleatoria k diero valores entre 1 o 0, en caso k diera 1 k se ejecute la orden con el chr$. En caso k diera 0 pues k ejecute una orden como la anterior pero sin el chr$.
Supongo k algo asi:

Código:
 
dim R as integer
randomize timer
R = int(rnd*2)
For j = 1 To iTotalCarac
 if R = 1 then
        sPalabra = sPalabra + Chr(Int((122 - 97 + 1) * Rnd + 97))
elseif R = 0 then
        sPalabra = sPalabra + Int((122 - 97 + 1) * Rnd + 97)
end if
Next j