Y el ganador es..... jejeje
Bien, aqui la respuesta. Lo hago ahora porque nuestro amigo ADONAIRAFA estuvo bastante cerca de chuantarla y en premio (jeje) la suelto de una vez, su respuesta mas bien me invita a corregir (desordenar los registros) aquello por lo cual
me parece que indujo a primera vista los patrones y casi certeramente.
Y digo "casi" porque erró en el primer patrón la 7, 8, 9 y 10. (la 10 la editaste mal porque te faltó el ultimo caracter).
También es cierto el segundo patron pero erró en la 4 a pesar de obtener el mismo caracter y si tiene una finalidad.
Bien, sin desordenar y tal como lo plantee la respuesta seria:
| ID | | CLAVE | | RESULTADO |
| 1 | | 1MJ2D8GFSA | | Verdadero |
| 2 | | A0HKJ345BJ | | Falso |
| 3 | | 3D0AJSDCA1 | | Falso |
| 4 | | RDS1DSD1DA | | Verdadero |
| 5 | | AMJ21EGFSA | | Verdadero |
| 6 | | THSJF0S232 | | Falso |
| 7 | | 03JGD91KSA | | Verdadero |
| 8 | | 1DHS0FS0EW | | Falso |
| 9 | | FI1DSWJE1A | | Verdadero |
| 10 | | JFS3101SA1 | | Verdadero |
Y es:
De izquierda a derecha debo contar según el numero de registro (ID) la posición de caracter, Si el ID es 4 cuento de izquierda a derecha y debo encontrar o un 0 o un 1 para saber si es verdadero o falso.
Este verdadero o falso debe validarse con el segundo patrón de derecha a izquierda. Usando el mismo ejemplo, cuento 4 hacia la derecha y debo hallar una letra, en este caso la D para confirmar que esta cadena corresponde a ese ID.
¿Porque el segundo patrón?, es una pretención de asegurar que si copian los registros manualmente queriendo conseguir un true no lo lograra tan fácilmente. La letra (segundo patrón) exige que ese registro este con ese ID y no con otro.
Bueno, este ejercicio por supuesto esta lejos de ser infalible e invulnerable, no busco tanto, para ello los algoritmos encriptadores, pero en un mar de desconocimiento por parte del usuario travieso y que no tenga ninguna información sobre lo que significan esas letras y números es mas facil que la malogre a que acierte. Por el lado de aplicación si el programa no encuentra lo que se espera podría hacer mil cosas como "defensa" de lo que quiera "proteger".
Por cierto que esto se puede mejorar mas y sin complicar mucho, esto es al final un contador de posición y un verificador, y puedo usar en vez de 0 y 1 otro caracter, conjugar dos caracteres, extender a 20 caracteres, en fin.
Bueno, afinando un poco mas esto, porque me parece que ya vi por donde van las evaluaciones, creo que lo implementaré, en todo caso en un piloto, con esto quiero validar que en una empresa puedan usar un proceso y en otra empresa (otro cliente) no puedan, crear una tabla con el nombre del proceso y ponerle al lado un true como que es muy fácil copiar ese true en todos los registros de esa tabla y validan todo, por eso quise complicar un poco, no habrá interfaz de acceso en la aplicación a esta tabla y seré yo quien meta la mano en el registro para validar o no.
Bueno, muchas gracias por ayudarme con el ejercicio.
Un abrazo