El código captcha es una combinación de números, letras o ambos, que se generan aleatoriamente para brindar mayor seguridad a un formulario o para entrar a algún sitio web. Cuando una persona accede a ciertos servicios donde se necesita seguridad, es común ver que se pida el nombre de usuario, contraseña y la resolución del captcha.
Si el código ingresado es incorrecto, se podría decir que no se trata de una persona, sino de un programa automatizado utilizado para hacer spam, robo de identidad, etc. Es por eso que el captcha es una buena opción para los formularios de autenticación.
En este caso, se utiliza el software LabVIEW para programar un generador de códigos captcha. En el panel frontal se tiene un indicador de texto, donde aparece el código generado, un control de texto, donde el usuario ingresa el código que visualiza, un indicador de texto, donde se puede ver si el código ingresado es correcto o no, un botón de paro y un botón para establecer que se ha ingresado el código.
Al ejecutar el programa, se genera de forma aleatoria un código, el usuario debe escribir ese código en el campo inferior y presionar el botón OK.
Si el código es correcto, aparece un mensaje de confirmación y se detiene el programa. Si no es correcto, aparece un mensaje informándolo y el programa se sigue ejecutando hasta que el usuario acierte o detenga el programa con el botón de paro.
Como se puede observar en el diagrama de bloques, el programa corre en un ciclo while.
Se utiliza la función random para generar un número aleatorio y se multiplica por 10,000, para que el número sea demasiado grande, luego se convierte a hexadecimal aprovechando la longitud del número generado para obtener un código más grande.
El resultado de esto se muestra en el indicador de texto.
Con una variable local del código generado, se evalúa si el código ingresado por el usuario es el mismo, mediante una estructura case, en la que si es verdad, se muestra el respectivo mensaje.
Con la misma comparación de códigos, se utiliza la función Select para que en caso de ser verdadera, se detenga el programa, de lo contrario, se sigue con la ejecución.
Se utiliza una compuerta lógica OR para establecer que el programa se detiene si la comparación es verdadera ó si se utiliza el botón de paro.
Puedes descargar el VI aquí.
Video demostrativo: