![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Es que estas utilizando funciones para generar numeros "aleatorios" seria un milagro que en distinto lenguajes te saliesen los mismos numeros, para ello tendrian que usar el mismo metodo para generarlos.
Es mas segun el compilador y sistema operativo que se use, hasta seria posible que el mismo programa generase distintos numeros en distintos ordenadores, e incluso en saliesen distintos numeros en el mismo ordenador pero en distintos momentos. Incluso en distintos compiladores o distintas versiones de delphi o distintas versiones de las librerias .Net te podrian salir numeros distintos. Imaginate que haces el programa para .net, y parece que funcioan todo perfectamente es posible que mañana o pasado a dentro de un mes, el usuario actualize windows, se instale una version .net mas moderna y el programa falle porque se empiecen a generar numeros distintos. No puedes considerar que las funciones de generacion de numeros aleatorios te van a dar los mismos resultados, si quiere hacer esto no uses rand, tendras que implementar tu propia funcion de generacion de numeros. |
#2
|
||||
|
||||
![]()
Ningún valor de x entre 1 y 1000 me genera la secuencia que tu indicas en tu mensaje. ![]() En cuanto a simular la funcion Rnd de Visual Basic, lo podriamos intentar de la siguiente manera:
Tal como indican en la pagina de microsoft: http://support.microsoft.com/kb/231847 El problema es inicializar el valor de la semilla, ya que Randomize utiliza un método bastante complejo, así que si me puedes pasar varias secuencias (los números decimales no los enteros) y los parámetros que le pasaste al Randomize para generar cada una de ellas, me seria muy útil para comprobar mi traducción de la función Randomize. |
#3
|
||||
|
||||
Cita:
![]() Por cierto, si se quiere valores "aleatorios", ¿por qué quiéres que salgan los mismos valores?, ya no serían aleatorios ![]() |
#4
|
||||
|
||||
Cita:
También puede servir para otras cosas, por ejemplo en un juego de cartas podemos utilizar Random para barajar las cartas y guardando la semilla podemos repetir el mismo juego todas la veces que queramos. (Creo que el carta blanca utiliza un método similar) Cita:
De todas formas para encriptar mejor usar alguno de los métodos probadamente seguros, AES, Serpent, etc ... Aguantaran un poco mas un ataque que cualquier método que inventemos nosotros. |
#5
|
|||
|
|||
Gracias Estoy trabajando con Delphi v7 con el parche y con WinXp Pro Parche 2 Como comente estoy cambiando de un sistema realizado en VB .Net a Delphi, lo estoy cambiando de partes. En una parte existe este.
En VB Código:
Rnd(-1) Randomize(qq0) qq1 = CInt(Int(24 * Rnd() + 11)) qq2 = CInt(Int(24 * Rnd() + 11)) qq3 = CInt(Int(24 * Rnd() + 11)) qq4 = CInt(Int(24 * Rnd() + 11)) qq5 = CInt(Int(24 * Rnd() + 11)) Donde qq0 es 29 la Semilla El problema que aún no puede utilizar otro sistema de encriptación, ya que la aplicación la están utilizando. Por mi parte yo utilizo los componentes DCPcrypt Cryptographic Lo otro, con la misma aplicación VB en WinXp Pro y Server 2003 generan lo mismo. lo otro, cual será en método utiliza VB, ya que he leído más de 10. lo otro, se probó random en delphi con semilla iguales en varios equipos distintos y generando los mismo valores. Gracias Espero como siempre sus valiosos comentarios. JC Última edición por teletranx fecha: 06-03-2007 a las 22:59:26. |
#6
|
||||
|
||||
Que tal si planteas *primero* que quieres?
Aunque seguro es tecnicamente posible reproducir el algoritmo (como usando Reflector para ver el codigo fuente en .NET) la verdad tampoco le veo el sentido a depender de una funcion aleatoria...
__________________
El malabarista. |
#7
|
|||
|
|||
Nuevamente, La aplicación que se esta utilizando en varios lugares esta en VB.net, se esta cambiando por partes, me encontré que utilizaban random para generar una key. Como se esta cambiando a Delphi y mis jefes quieren trabajar con esa esquema de generar key. (el que sabe sabe y el que no es jefe). El esquema es muy fácil, una fecha se cambia a formato juliano y se descompone en los diferentes dígito, lo cuales se buscan en una cadena de caracteres y se combinan para crear una key de 31 de largo, en donde esta la fecha y la semilla y otros caracteres que se chequean. Los cuales salen tambien de la semilla. JC
|
#8
|
||||
|
||||
Cita:
Si realmente deseas obtener la misma secuencia de los resultados no emples randomize e ingresa SIEMPPRE el mismo valor de semilla. Ha decir verdad no se si será posible obtener los mismos resultados que en VB. En cuanto a lo que dice seoane sobre técnicas de encriptación: Cita:
![]() Cita:
Saludos, |
#9
|
|||
|
|||
Cita:
Cita:
Cita:
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Aprender a ser como tu enemigo | DarkByte | Debates | 3 | 26-05-2004 19:43:50 |
![]() |
|