Autor
|
Tema: Ayuda números enteros codificados (Leído 4,578 veces)
|
santiniox
Desconectado
Mensajes: 3
|
Hola. Tengo una serie de códigos que supongo que se corresponden con números enteros positivos y que parecen ir creciendo, aunque parece que incluyen algún tipo de modificación despistante. ¿Alguien podría echarle un vistazo rápido y ver si se le ocurre algo? Pongo el código tal cual y su equivalente en hex, y el número aproximado que podría representar. Lo que sí sé es que son correlativos: Código | Hex | nº aprox. | 002rZ9U | 0x303032725A3955 | 1 | 003Ov93 | 0x3030334F763933 | 2 | | | | 1Sy8Jvp | 0x315379384A7670 | 4120 | 1SyOr8C | 0x3153794F723843 | 4121 | 1SzmrhT | 0x31537A6D726854 | 4122 | | | | 5QC3dsJ | 0x3551433364734A | 14700 | 5QPqbmy | 0x35515071626D79 | 14701 | | | | 7NbEHEC | 0x374E6245484543 | 19700 | 7NdBZvu | 0x374E64425A7675 | 19701 | 7Ne2Tav | 0x374E6532546176 | 19702 | 7NnRt9L | 0x374E6E5274394C | 19703 | 7NpYmIP | 0x374E70596D4950 | 19704 | | | | cZKXzC1 | 0x635A4B587A4331 | 102100 | cZL4bgI | 0x635A4C34626749 | 102101 |
Un saludo.
|
|
|
En línea
|
|
|
|
Falo Zipo Pixote
Desconectado
Mensajes: 143
|
Creo que no das toda la información que tienes. La equivalencia de los signos de los códigos con caracteres ASCII es clara. Pero, ¿de dónde obtienes la correspondencia con los enteros? ¿Porqué "crees" que son enteros positivos? ¿Porqué de la correlatividad? ¿Cuál es la modificación despistante? Y, ¿porqué esos números en concreto que pones? Alguna idea tendrás de esos porqués, digo yo. Parece que sabes que se corresponden con esos números y quieres que te digan como se obtienen las correspondencias, pero eso tiene toda la pinta de un problema propuesto, donde dan los códigos y los números correspondientes y hay que averiguar la correlación,... y éso es una tarea a hacer sin aportar nada del trabajo hecho.
|
|
|
En línea
|
|
|
|
santiniox
Desconectado
Mensajes: 3
|
Gracias por la respuesta.
He dado la información que me parece más relevante, aunque puedo aclarar algunos puntos. Estos códigos creo (no lo sé seguro) que se corresponden con IDs típicas de base de datos y supongo que las entradas están ordenadas alfabéticamente. En la medida de lo posible, porque ya sabemos que la información entra y sale, y pueden quedar agujeros entre medias. De ahí que pueda aportar el número aproximado (que no tiene por qué coincidir con el real), que suponga que son enteros positivos, y que diga que son correlativos. No lo sé, pero es muy posible.
Lo "despistante" es porque a veces parece haber saltos muy grandes. Por ejemplo, en la línea del 19700, parece plausible un salto de 7Nb a 7Nd y 7Ne. Luego, el salto a 7Nn parece muy grande, en comparación. Lo mismo pasa en otros sitios. Esto puede ser porque el algoritmo incluye algún elemento "despistante", como digo, para que no haya una correspondencia evidente entre ASCII y número entero, o bien porque tal vez existan "agujeros" en la DB (o sea, entradas que existieron y fueron borradas).
También despistante porque parecen utilizarse caracteres 0-9A-Za-z (o sea, base 62), pero el resultado es un código de 7 cifras, mientras que con 3 bastaría para representar hasta el número 238327 (que es más de lo que supongo que pueda existir en dicha base de datos).
|
|
|
En línea
|
|
|
|
Serapis
|
Bien parece ser el resultado de un algoritmo de hash...
Tal vez, tu has entrado determinados valores, cuasi idénticos, esperando con ello determinar el cálculo del hash (¿para a futuro poder falsificar tokens?).
Los hashes a menudo puedne generar colisiones (depende de la 'bondad' del algoritmo subyacente), hay varias formas de paliarlo o mejor dicho resolverlas. La más habitual suele llamarse 'chaining' (encadenarla, es decir buscar el próximo hueco libre y apuntarlo desde el previo que arrojó ese hash. ...otra de ellas (mucho menos frecuente), es haber generado una codificación durante su cálculo, si hay una colisión, podría a posteriori generar un nuevo hash partiendo de esa codificación previa.
Pretender conocer como funciona exactamente un algoritmo a partir de los hashes que genera es harto una pérdida de tiempo. Suele haber SIEMPRE una operación módulo (o más de una), que trastoca el resultado, dar con ese valor requeríría crear tal cantidad de hashes que podría ser desesperante. Y si hay más de uno, se acabó, jamás podrías llegar a conocerlos (salvo desensamblando, si el código está en local), como máximo podrías llegar a conocer solo el último.
|
|
|
En línea
|
|
|
|
santiniox
Desconectado
Mensajes: 3
|
Pretendía bucear en la base de datos por id, para no pasarme nada por alto. Está claro que no quieren facilitarlo y por eso codifican/encriptan la id, aunque supongo que hubiera bastado con no habilitar la búsqueda por id en primer lugar Ya que sale el tema de las colisiones, siempre me he preguntado sobre ese asunto. Con algoritmos más modernos no hay problema, ¿pero qué pasaba con otros que se usaban mucho, como crc32 o crc16? ¿Y los algoritmos modernos tienen realmente en cuenta esas colisiones? Trabajo mucho con bases de datos y por ahora suelo confiar en md5, pero siempre me quedo con la duda de utilizar un hash aún más largo...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Necesito ayuda, validación de números enteros
Programación C/C++
|
DarkSorcerer
|
3
|
4,950
|
25 Noviembre 2013, 20:37 pm
por do-while
|
|
|
Programa que factorize números enteros
Programación C/C++
|
Einstein92
|
5
|
3,690
|
25 Enero 2014, 21:49 pm
por Einstein92
|
|
|
Programa que lea números enteros y nos diga cuántos números son pares.
Programación C/C++
|
estudiante_1
|
3
|
3,366
|
20 Agosto 2015, 18:58 pm
por estudiante_1
|
|
|
[Pregunta]: Números flotantes y enteros.
Desarrollo Web
|
Leguim
|
5
|
3,817
|
11 Agosto 2020, 01:34 am
por EdePC
|
|
|
Números enteros en VBA
Programación Visual Basic
|
isam
|
3
|
3,176
|
9 Noviembre 2020, 22:02 pm
por EdePC
|
|