• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

luisgaspar

Esconder Password em C

7 mensagens neste tópico

Boas, amantes do C.

Estou com a fazer um trabalho da universidade e agradecia uma pequena ajuda para um pormenor, visto que o trabalho nao passa pela minha duvida.

O trabalho é desenvolvido em C em ambiente linux(Ubuntu).

O trabalho envolve pedir uma password ao utilizador em shell. Como eu gosto de fazer as coisas bem feitas, queria que o utilizador ao meter a password ela aparece-se em *(asteriscos). Ja tive a pesquisar e encontrei o que queria, mas ou sou eu  que sou nabo ou entao o codigo k encontrei nao funcioavam.

(alguns eram em windows e utilizavam bibliotecas desconhecidas para o linux)

Agradeço desde ja.

Cumps,

Luis Gaspar

(peço desculpa por me ter enganado na secçao, este topico devia estar no "C", algum moderador que mova isto :-[)

ps:ja tive a pesquisar no forum e ja vi alguns users com o que eu quero, mas todos tem o conio.h. eu ja exprimentei a compilar isto no ubuntu, mas ele nao me reconhece o conio.h. pergunto eu: o conio é especifico do windows ou esterei a fazer alguma coisa mal?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com **** não sei mas dá para não mostrar nada:

pass = getpass("Introduza a password");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ou então se usares a biblioteca ncurses, com a função noecho().

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Hipnoted! ficou por enquando assim "escondida".

Cumps,

Luis Gaspar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pode-se também fazer um loop enquanto não for pressionada a tecla ENTER você acrescenta no vetor. Algo do tipo:

puts("Informe sua senha:");
   for(i=0; (pass=getch())!=13 && i<tamVetor-1; i++){
      printf("*");     
      strPass[i] = pass;
   }
   strPass[i]='\0';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com **** não sei mas dá para não mostrar nada:

pass = getpass("Introduza a password");

Olá,

Retomo este tópico porque estou com a mesma dúvida. Existe alguma função semelhante à getpass para windows?

Estou agora a iniciar no C.

Obrigado!

Pedro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou agora a iniciar no C.

Diverte-te! C é fixe :-)

Mas ... fazer input sem mostrar os caracters (ou mostrando *) nao é propriamente facil. A microsoft diz que é assim: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686974%28v=vs.85%29.aspx

Se quiseres optar por uma solucao que da em todos os Sistemas Operativos, mete a password num ficheiro de texto e passa o nome do ficheiro para o teu programa

C:\bin\> programa < password.txt

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora