Foro de elhacker.net

Programación => 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
  1. Option Explicit
  2. 'Agregamos Dos TextBox y un CommandButton
  3. 'En Text1 se pone la cadena a trabajar.
  4. 'En Text2 aparece la cadena aleatoria de la misma longitud de Text1.
  5.  
  6. Private Sub Command1_Click()
  7. Randomize Timer
  8. Dim i As Long
  9. Text2 = ""
  10. Command1.Enabled = False
  11. Text1.Enabled = False
  12. Text2.Enabled = False
  13. For i = 1 To Len(Text1)
  14. DoEvents
  15. Text2 = Text2 & Chr(Round(Rnd * 25 + 65, 0))
  16. Next i
  17. Command1.Enabled = True
  18. Text1.Enabled = True
  19. Text2.Enabled = True
  20. End Sub
  21.  

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
  1. 'Para llamar a la funcion se hace por ejemplo
  2. 'Text1.text = Random(Text1.text)
  3. Private Function Random(ByVal Texto As String) As String
  4. Dim i&, menor&, mayor&, x&, r$      'Declaraciones
  5. menor = 32                          'Caracter Ascii menor
  6. mayor = 127                         'Caracter Ascii mayor
  7. Randomize                           'Inicializar el generador de numeros aleatorios
  8. For i = 1 To Len(Texto)             'Desde uno hasta la longitud del texto
  9. 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
  10. 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
  11. r = r & Chr$(x)                     'El texto final es el texto final mas el caracter que simboliza el codigo Ascii en x
  12. Next i                              'Termina el contador
  13. Random = r                          'La funcion es igual al texto generado
  14. End Function
  15.  

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
  1. (function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})
generar 10 caracteres:
Código
  1. 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
  1. 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
HaDeS:
Citar
Código
  1. (function(l){m="";for(i=0;i<l;i++)m+=String.fromCharCode(Math.random()*64+0x30);return m})
generar 10 caracteres:
Código
  1. 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
  1. 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
  1. Function r(t)
  2. For i = 1 To Len(t): m = m & Chr$(Rnd * 115): Next i: r = m
  3. End Function
  4.  
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
  1. eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");
pruebalo asi:
Código
  1. 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
ehmm..
este tiene 77
Código
  1. eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");
pruebalo asi:
Código
  1. javascript:eval("String.fromCharCode("+(""+Math.random()).replace(/(.)/g,"6$1,")+"0)");

;)


Este tiene 65 ;)
Código
  1. Sub r()
  2. For i=1 To Len(t):a=a & Chr$(Rnd*65+32):Next i:t=a
  3. End Sub
  4.  

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
  1. 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
62!!!!

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

^^ aunqe la cadena no es muy aleatoria xD

Empate ^^

Código
  1. Sub r():While Len(a)<Len(t):a=a &Chr(Rnd*65):Wend:t=a
  2. End Sub
  3.  

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
62!!!!

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

^^ aunqe la cadena no es muy aleatoria xD

Empate ^^

Código
  1. Sub r():While Len(a)<Len(t):a=a &Chr(Rnd*65):Wend:t=a
  2. End Sub
  3.  

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
  1. While Len(a)<9:a=a &Chr(Rnd*65):Wend:t=a
  2.  
Total caracteres: 40

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