用C ++编写的ubuntu中的密码掩码

时间:2013-04-25 18:19:20

标签: c++ linux ubuntu passwords masking

我最近制作了一个程序,使用getch()来掩盖输入的密码。但是只要输入正确的代码,它就会立即访问,而无需等待按下回车键。应该做些什么改变?此外,Ubuntu中是否允许getch()?如果没有,可以使用什么替代方案?

我的代码看起来像这样。我已经在不同的功能中提供了默认密码。

char pass[4];
cout << "\nEnter Administrator Password: ";
for (i = 0; i < 4; i++)
{
  pass[i] = getch();
  cout << "*";
}
for (i = 0; i < 4; i++)
{
  if(admin_pass[i] == pass[i])
    return 1;
  else
    return 0;
}

3 个答案:

答案 0 :(得分:2)

getpass功能可能有所帮助。

答案 1 :(得分:2)

您可以使用getpass(),如下所示,

#include<stdio.h>
#include<unistd.h>
#include<string.h>


char *pass=getpass("\nEnter Administrator Password: "); 

if(strcmp(admin_pass,pass)==0) 
  return 1;
else 
  return 0;    

函数getpass()在头文件unistd.h中定义。

答案 2 :(得分:1)

我的建议是谨慎使用getch()。 <conio.h>是一个非常古老的库,经常从操作系统更改为操作系统。在许多情况下,readgetch的替代方案。

http://www.cplusplus.com/forum/articles/7312/#msg33734