Leitura de Senhas
Publicado por Fagner Amaral de Souza Candido 22/07/2008
[ Hits: 7.527 ]
Homepage: https://github.com/fagnercandido
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
/*
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;
}
Como verificar a validade de um CPF
Gerador de numeros da mega-sena tabajara
Crud em C++ orientado a objetos com banco de dados MySQL
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
How can I remove duplicate MSG files from my folders effectively? (0)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









