LINUX:用C语言来模拟密码输入
来源:互联网 发布:淘宝卖家后台 编辑:程序博客网 时间:2024/04/28 03:26
以前在LINUX环境下,想输入密码(关闭回显)时都是用getpass函数,今天无意中看到手册上说:This function is obsolete. Do not use it.
那我就自己实现一个类似的功能吧(功能相同,原理不同)
程序的思路很简单:关闭回显,读取输入,恢复设置。
那我就自己实现一个类似的功能吧(功能相同,原理不同)
程序的思路很简单:关闭回显,读取输入,恢复设置。
上代码:
#include <stdio.h>#include <stdlib.h>#include <termios.h>#include <string.h>#define MAXLEN 256//参数dest是目标字符串, maxlen是最大长度,//如果输入超过了最大长度,则密码将会被截断//成功返回0,否则返回-1int new_getpass(char *dest, int maxlen){struct termios oldflags, newflags;int len;//设置终端为不回显模式 tcgetattr(fileno(stdin), &oldflags);newflags = oldflags;newflags.c_lflag &= ~ECHO;newflags.c_lflag |= ECHONL;if (tcsetattr(fileno(stdin), TCSANOW, &newflags) != 0){perror("tcsetattr");return -1;}//获取来自键盘的输入fgets(dest, maxlen, stdin);len = strlen(dest);if( len > maxlen-1 )len = maxlen - 1;dest[len-1] = 0;//恢复原来的终端设置if (tcsetattr(fileno(stdin), TCSANOW, &oldflags) != 0){perror("tcsetattr");return -1;}return 0;}int main(){char password[MAXLEN];printf("Enter password: ");new_getpass(password, MAXLEN);printf("You password is: %s\n", password);return 0;}
- LINUX:用C语言来模拟密码输入
- C语言 模拟三次密码输入
- 【C语言】模拟三次密码输入
- c语言:模拟三次密码输入。
- C语言 模拟三次密码输入
- C语言模拟密码输入(显示星号)
- C语言程序模拟银行输入密码
- 用C语言输入密码
- C语言控制台下实现模拟密码的输入
- 50 C语言模拟密码输入(显示星号)
- c语言输入密码时,用*代码密码
- Linux下C语言实现 密码不回显输入
- 模仿Linux密码输入(C语言编写)
- Linux 环境下C语言下实现密码输入无回显
- C语言实现输入密码
- C语言实现密码输入
- 如何实现从控制台输入c语言字符串密码,然后用oc的中的NSString方法来验证
- Linux下C语言多线程编程实例(用C语言模拟word软件,一边输入,一边统计字符)
- 转java中的volatile的用法
- android打电话实现分析
- Steve Jobs’ Speech at Stanford University
- Struts2的类型转换器
- Java网络爬虫的实现
- LINUX:用C语言来模拟密码输入
- UCOS II两个任务的模板
- 混迹于C++ 之重载与覆盖(还有隐藏)
- 黑客攻防技术宝典--web实战篇(第二版)人民邮电出版社
- android开发控件——listview1(入门)
- OGRE分析之设计模式(一)
- 血的教训之 ---- 字符集
- 一台计算机上如何装多个Tomcat服务器
- .Net 多文件上传