Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Danieldark en 15 Agosto 2007, 04:46 AM

Título: Como generar una cadena de letras aleatorias...
Publicado por: Danieldark en 15 Agosto 2007, 04:46 AM
Hola, bueno, disculpen la molestia, quisiera saber si alguno de uds me pudiera ayudar, el problema es que necesito generar una cadena de letras aleatorias de la misma extension que otra cadena dada, por ejemplo

De "Visual Basic" generar "ahtovofunfod", de "Hola" generar "akjg" y asi...

Ojala alguien pueda ayudarme... desde ya, muchas gracias
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: APOKLIPTICO en 15 Agosto 2007, 06:05 AM
Aqui esta la solución a tu problema  ;D ;D ;D.

Código (vb) [Seleccionar]
Option Explicit
'Agregamos Dos TextBox y un CommandButton
'En Text1 se pone la cadena a trabajar.
'En Text2 aparece la cadena aleatoria de la misma longitud de Text1.

Private Sub Command1_Click()
Randomize Timer
Dim i As Long
Text2 = ""
Command1.Enabled = False
Text1.Enabled = False
Text2.Enabled = False
For i = 1 To Len(Text1)
DoEvents
Text2 = Text2 & Chr(Round(Rnd * 25 + 65, 0))
Next i
Command1.Enabled = True
Text1.Enabled = True
Text2.Enabled = True
End Sub


Espero que te sirva...
Un abrazo!
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: Danieldark en 15 Agosto 2007, 08:22 AM
 :o muchisimas gracias apokliptico!! jejeje mmm me sirvio de maravilla, jajaja yo andaba por otros rollos y quebrandome la cabeza jajaja pero analizandolo es muy sencillo, es que apenas me ando metiendo en esto de VB, oye, si no es mucha molestia, una duda mas, como podria hacer para sacar los ASCII de ambas cadenas y sumar el ASCII de letra por letra de ambas cadenas, o sea el valor de la primera del texto original mas el valor de la primera de la cadena aleatoria, y guardar el resultado y luego el de las segundas y guardarlo y asi, mmm es que quiero hacer un ejemplo de encriptacion por sustitucion y pues la verdad es bastante sencillo el "algoritmo"que usare pero pues apenas voy iniciando.

Ojala tengas tiempo para esa dudida, y muchisimas gracias por esta :)
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: APOKLIPTICO en 15 Agosto 2007, 19:14 PM
Entiendo lo que pensas hacer, pero el problema que tenes que ese algoritmo, es que no vas a poder volver atrás sino sabes la cadena aleatoria que generaste  :-\, ya que es aleatoria. Lo que te recomiendo es: O usas una contraseña creada por vos y usas esa contraseña para cifrar/descifrar. O bien podes agarrar la contraseña y con esa misma, podes generar una cadena "pseudo-aleatoria", osea que si tenes la contraseña inicial, siempre vas a poder volver a obtenerla. Me explico? Tambien te podes fijar en mi algoritmo: CryptoForm V1.1 By Apokliptico. (http://foro.elhacker.net/index.php/topic,176055.0.html)
En el post está explicado como funciona. Espero que te sirva.
Un abrazo!
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: HaDeS, - en 16 Agosto 2007, 03:58 AM
Código (vb) [Seleccionar]

'Para llamar a la funcion se hace por ejemplo
'Text1.text = Random(Text1.text)
Private Function Random(ByVal Texto As String) As String
Dim i&, menor&, mayor&, x&, r$      'Declaraciones
menor = 32                          'Caracter Ascii menor
mayor = 127                         'Caracter Ascii mayor
Randomize                           'Inicializar el generador de numeros aleatorios
For i = 1 To Len(Texto)             'Desde uno hasta la longitud del texto
x = Int((mayor - menor + 1) * Rnd + menor)      'Escoje un valor aleatorio tipo integer entre el Ascii menor y el Ascii mayor y lo asigna a x
If x > mayor Then x = mayor         'Si el valor de x es mayor al Ascii mayor entonces el valor de x es igual al Ascii mayor
r = r & Chr$(x)                     'El texto final es el texto final mas el caracter que simboliza el codigo Ascii en x
Next i                              'Termina el contador
Random = r                          'La funcion es igual al texto generado
End Function


Espero que les sea de ayuda :P
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: sirdarckcat en 17 Agosto 2007, 04:13 AM
HaDeS:
Citar
Código (javascript) [Seleccionar]
(function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})
generar 10 caracteres:
Código (javascript) [Seleccionar]
javascript:alert((function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})(10))
si quieres que solo sean letras..
Código (javascript) [Seleccionar]
javascript:alert((function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*25+0x41);return m})(10))
^^ venga, no me ganas jeje
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: HaDeS, - en 17 Agosto 2007, 04:34 AM
Cita de: Sirdarckcat en 17 Agosto 2007, 04:13 AM
HaDeS:
Citar
Código (javascript) [Seleccionar]
(function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})
generar 10 caracteres:
Código (javascript) [Seleccionar]
javascript:alert((function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})(10))
si quieres que solo sean letras..
Código (javascript) [Seleccionar]
javascript:alert((function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*25+0x41);return m})(10))
^^ venga, no me ganas jeje

Yo no he dicho que el visual es bonito xDD jajajaja mira:
Código (vb) [Seleccionar]

Function r(t)
For i = 1 To Len(t): m = m & Chr$(Rnd * 115): Next i: r = m
End Function

Mi codigo tiene 88 caracteres, el tuyo 90 xD
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: sirdarckcat en 17 Agosto 2007, 04:51 AM
ehmm..
este tiene 77
Código (javascript) [Seleccionar]
eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");
pruebalo asi:
Código (javascript) [Seleccionar]
javascript:eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");

;)
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: HaDeS, - en 17 Agosto 2007, 04:53 AM
Cita de: Sirdarckcat en 17 Agosto 2007, 04:51 AM
ehmm..
este tiene 77
Código (javascript) [Seleccionar]
eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");
pruebalo asi:
Código (javascript) [Seleccionar]
javascript:eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");

;)


Este tiene 65 ;)
Código (vb) [Seleccionar]

Sub r()
For i=1 To Len(t):a=a & Chr$(Rnd*65+32):Next i:t=a
End Sub


t es como decir Text1 xD
jajaja
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: sirdarckcat en 17 Agosto 2007, 05:27 AM
62!!!!

Código (javascript) [Seleccionar]
s=i="9";while(i--){s+=(location+"")[(new Date).getTime()%9^i]}

^^ aunqe la cadena no es muy aleatoria xD
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: HaDeS, - en 17 Agosto 2007, 05:53 AM
Cita de: Sirdarckcat en 17 Agosto 2007, 05:27 AM
62!!!!

Código (javascript) [Seleccionar]
s=i="9";while(i--){s+=(location+"")[(new Date).getTime()%9^i]}

^^ aunqe la cadena no es muy aleatoria xD

Empate ^^

Código (vb) [Seleccionar]

Sub r():While Len(a)<Len(t):a=a &Chr(Rnd*65):Wend:t=a
End Sub


t=por ejemplo text1
tiene tambien una limitacion, y es que mas o menos a las 100 llamadas a las funciones, los valores se comienzan a poner a cero, y ni idea de porque xD.
saludos!
Título: Re: Como generar una cadena de letras aleatorias...
Publicado por: HaDeS, - en 17 Agosto 2007, 06:17 AM
Cita de: .HaDeS. en 17 Agosto 2007, 05:53 AM
Cita de: Sirdarckcat en 17 Agosto 2007, 05:27 AM
62!!!!

Código (javascript) [Seleccionar]
s=i="9";while(i--){s+=(location+"")[(new Date).getTime()%9^i]}

^^ aunqe la cadena no es muy aleatoria xD

Empate ^^

Código (vb) [Seleccionar]

Sub r():While Len(a)<Len(t):a=a &Chr(Rnd*65):Wend:t=a
End Sub


t=por ejemplo text1
tiene tambien una limitacion, y es que mas o menos a las 100 llamadas a las funciones, los valores se comienzan a poner a cero, y ni idea de porque xD.
saludos!

Bueno, definitiva :P, como sirdar no estaba usando funciones, entonces pego la mia sin funcion, y tampoco le sacaba de la longitud de otra cadena xD ahi va
Código (vb) [Seleccionar]

While Len(a)<9:a=a &Chr(Rnd*65):Wend:t=a

Total caracteres: 40


sirdarckcat - G3 [[ sirdarckcat.net ]] dice:
ya, me ganaste xD, me rindo