Estoy escribiendo un pequeño sistema que me permitirá vender la música de mi banda en conciertos generando cupones que se pueden canjear por MP3 en nuestro sitio web.GUÍA de lectura humana
Los cupones tendrán un código que el usuario escribe en el código debe tener las siguientes cualidades:.
- cierto nivel de legibilidad humana en términos de duración y contenido, para evitar la frustración del usuario y la entrada de datos error.
- Dado un código de cupón, no es trivial para adivinar otro código de cupón.
Si uso GUIDs estoy preocupado por el punto 1. Si uso un número entero creciente, me preocupa el punto 2. Tiene que haber algún medio feliz, ¿no? Pensé que tal vez este trabajo ya se haya realizado y que haya una solución ideal esperándome. En ausencia de eso, creo que iré con una cadena alfanumérica aleatoria, o posiblemente solo letras (excluyendo I y O para mayor claridad), y la aplicación bloqueará las direcciones IP que fallan X veces, lo que indicaría un posible ataque de fuerza bruta. Si fui con eso, ¿cuánto tiempo de una cadena y qué valor de X funcionaría, y por qué?
Gracias por su ayuda!
Actualización: Yo no estaba totalmente explícita sobre el método: Voy a generar listas de códigos de bono para la impresión, a continuación, introduzca los códigos de "vendidos" después de un concierto. Por lo tanto, creo que elementos como una suma de comprobación no son necesarios, como lo son en las claves de software que no usan servidores de validación.
Gracias por todas las sugerencias útiles y/o exóticas chicos! Koper ganó en practicidad y simplicidad, con Mark Ransom en segundo lugar. –
Sobre el bloqueo de ataques de fuerza bruta no me molestaría en comenzar. Con respecto a ti y tu banda, no es como si estuvieras protegiendo algo realmente importante. Simplemente me parece un poco desproporcionado. –
Tienes toda la razón, me estoy divirtiendo demasiado diseñando el sistema. Pero ahí lo tienes, soy un programador de corazón. Además, si todo funciona, podría albergar álbumes de otras bandas. –