#include <stdio.h>
#include <string.h>
#include <unistd.h>
# include<termios.h>
# include<assert.h>
int getch()
{
int c=0;
struct termios org_opts, new_opts;
int res=0;
res=tcgetattr(STDIN_FILENO, &org_opts);
assert(res==0);
memcpy(&new_opts, &org_opts, sizeof(new_opts));
new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL);
tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);
c=getchar();
res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);
assert(res==0);
return c;
}
int main()
{
int i = 0;
char passwd[20] = {0};
for(i=0;;i++)
{
passwd[i]=getch();
if(passwd[i]=='\n')
{
passwd[i]='\0';
break;
}
if(passwd[i]==19)
{
printf("\b \b");
i=i-2;
}
else
printf("*");
if(i<0)
passwd[0]='\0';
}
int len = 0;
len = strlen(passwd);
printf("\n%d\n",len);
int ret = 0;
ret = strcmp(passwd,"123456");
printf("%d\n",ret);
printf("%s\n",passwd);
return 0;
#if 0
char *pass={"请输入管理员的密码:"};
char *pa;
pa=getpass(pass);//pa已经得到了你输入的密码
printf("%s\n",pa);//打印密码
//return 0;
#endif
#if 0
char *passwd = NULL;
passwd = getpass("");
printf("%s\n",passwd);
int len = 0;
len = strlen(passwd);
printf("%d\n",len);
int ret = 0;
ret = strcmp(passwd,"123456");
printf("%d\n",ret);
#endif
return 0;
}
linux下实现密码隐藏,非系统getch
最新推荐文章于 2024-10-01 22:54:40 发布