Bienvenidos a www.geekprogramador.tk en este blog encontraras manuales y tutoriales sobre C/C++ también ejercicios de programación resueltos en C/C++.

miércoles, noviembre 11, 2009

Función para capturar una contraseña en C


En estos días me dio la curiosidad de querer hacer una función para la captura de contraseñas, y pues quiero compartir con ustedes lo que he hecho.

Bueno primeramente les pondré el prototipo de la función que he hecho.

void cPass(char *pass, int longitud);

A la función la llame cPass y el primer parámetro que recibe es el array de caracteres, el segundo parámetro es un numero entero en el cual le enviamos el tamaño del array esto se hace para evitar un desbordamiento, es decir por ejemplo le mandamos 10 entonces la función al capturar el carácter numero 10 va a dejar de capturar sin necesidad de presionar enter.

Como se puede observar en la imagen esta función imprime asteriscos en ves de las teclas que presionamos ademas esta función permite el uso de la tecla backspace para borrar algún carácter.

Nota: La contraseña se almacena directamente en el array de caracteres que se le envia en el primer parámetro.

A continuación les muestro el código fuente de la función:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

void cPass(char *pass, int longitud){
 int cont=0;
 char cla;

do{
  cla = getch();

  if(cla!=13 && cla!='\b'){
   printf("*");
   pass[cont] = cla
   cont++;
  }
  if(cla=='\b' && cont !=0){
   printf("\b");
   printf(" ");
   printf("\b");
   cont--;
   pass[cont] = NULL;
  }

 }while(cla!=13 && cont < longitud);

 pass[cont] = NULL; 
}
Por aquí les dejo 2 enlaces para que descarguen el archivo .h que contiene la función y el archivo .cpp para que vean un ejemplo de como utilizar esta función.

Descargar cPass.h

Descargar pass.cpp

0 comentarios:

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews