Mi tarea para hoy es generar un PIN. Un pin de cuatro dígitos. Tiene que ser al azar. ¿Existen limitaciones para hacerlo y hacerlo de la manera que planeo? Entiendo que los humanos nunca pueden crear algo VERDADERAMENTE aleatorio, pero bueno, tenemos que intentarlo.
Actualmente lo estoy generando en el cliente (JS), luego lo paso al Modelo (C #) y esto se inyecta en el DB (Oracle). Las únicas medidas de seguridad en las que puedo pensar hasta ahora son generar desde 0001> en adelante hasta menos de 10000, por lo que 9999 será el número más alto. Cualquier cosa que se devuelva que esté entre estos dos números, siempre que no se haya usado antes en mi lógica, es aleatoria; también sabemos que tenemos que verificar la base de datos para ver si el PIN ya existe SI NO, luego generarlo.
Supongo que puedo:
onGen() { //generate pin var pin = characters.charAt(Math.floor(Math.random() * charactersLength)); //check db if pin exists const exists = checkDB('select pin from pins where pin =' + pin + ';') //if pin exist generate again if(exists) pin = characters.charAt(Math.floor(Math.random() * charactersLength)); //also should I put my login of 0001 > and < 10000 in the SELECT or js? if pin > 0000 return pin //or this checkDB('select pin from pins where pin =' + pin + 'AND pin > 0001 and pin < 10000;') }