Supongamos que tengo una pieza de software que permite a las personas descargar una versión de prueba que luego se puede desbloquear. ¿Los siguientes pasos serían una forma efectiva de implementar un sistema clave para desbloquear el software?
- El usuario puede descargar la versión de prueba del software. Para comprar, deben ir al sitio web e ingresar la información de pago y un correo electrónico.
- Se genera un hash MD5 desde este correo electrónico. Este hash se almacena en un DB controlado por mí y también se envía por correo electrónico al comprador.
- El usuario toma el hash del correo electrónico y lo ingresa en el software. El software lo envía como parte de una solicitud HTTP a un servicio web que controlo.
- El servicio web marca este hash como "usado". Luego envía una respuesta que indica que el software debe desbloquearse. Una vez que un hash está marcado como "usado", no se puede usar para desbloquearlo nuevamente.
¿Alguien puede ver algún problema con este plan? ¿Hay algún método diferente que deba usar para algo como esto?