Pular para o conteúdo

Leitura de Senhas

Todas as vezes que lemos senhas, os caracteres são apresentados na tela. Isso talvez não seja o que você deseja.

Uma possível solução é a função getch, da conio.h. Mas ela não é portável. Observando o nosso querido Linux, ele também tem uma forma de fazer a leitura, sem que os caracteres da senha sejam apresentados(su, sudo su....).

O código que posto é bem simples, mas pode ajudar a muitos(espero).


Abraços a Todos
Fagner Amaral de Souza Candido f_Candido
Hits: 7.684 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Todas as vezes que lemos senhas, os caracteres são apresentados na tela. Isso talvez não seja o que você deseja.

Uma possível solução é a função getch, da conio.h. Mas ela não é portável. Observando o nosso querido Linux, ele também tem uma forma de fazer a leitura, sem que os caracteres da senha sejam apresentados(su, sudo su....).

O código que posto é bem simples, mas pode ajudar a muitos(espero).


Abraços a Todos
Download senhaInv.c Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

/*
   Autor : Fagner Candido
   E-mail : fagner7777777@gmail.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#define MAX_SENHA 10 // Máximo para a Senha


int main(int argc, char **argv){
   // Declarações
      /*Define as estrutura manipularão o terminal*/
      struct termios antigoTermios, novoTermios;
      char senha[MAX_SENHA];
   // Instruções
      /*
         Função que obtém as informações do Terminal
         file(stdin) : Entrada Padrão
         antigoTermios : Recebe as informações
      */
      tcgetattr(fileno(stdin), &antigoTermios);
      /*
         Atribuímos as características do terminal
         a estrutura
      */
      novoTermios = antigoTermios;
      /*
         Definimos uma Propriedade : Terminal não irá imprimir nada
      */
      novoTermios.c_lflag &= ~ECHO;
      printf("Informe a Senha : ");
      /*
         Novas Características ao Terminal
      */
      if(tcsetattr(fileno(stdin), TCSAFLUSH, &novoTermios ) != 0 ){  /*Caso dê erro*/
           printf("Erro!\n" );  
                exit(0);  
           }  
           else{  /*Caso dê Certo*/
           fgets(senha, MAX_SENHA, stdin);
                tcsetattr(fileno(stdin), TCSANOW, &antigoTermios );  
           }  
           printf("\nSenha : %s", senha); 
      return 0;

}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Compactador Simples

Operadores Lógicos

Jogo da velha, básico

calculadora em C

Calendário em C

#1 Comentário enviado por gabrield em 02/01/2010 - 08:54h
Muito bom!
Tinha lido esta dica há algum tempo mas nunca pensei que teria que usar, mas hoje me foi bem útil, parabéns e obrigado!
[]'s

Contribuir com comentário

Entre na sua conta para comentar.