linux 密码回显
一,绪论
1.课题背景
Linux下有系统提供的getpass()函数,可由于写的时候太早了,只支持8位字符,同时有安全隐患(溢出!),Linux出于对密码的保密,输入的字符是不会显示到屏幕上的。在登陆函数和密码修改函数内都没有提供密码回显提示,但是此设计对于一般的桌面级应用的初级用户带来了一定的麻烦,而且,没有任何密码遗忘提示功能,一旦遗忘,只能重设,作为用户定制功能,如何在linux c下实现密码回显和提示功能的登录和密码修改模块呢。
2.参考资料
Linux编程技术详解 杜华 编著 人民邮电出版社
http://www.fanqiang.com
http://csdn.net/
二,实现过程
1.首先,我编写了在windows c下的密码回显的代码
程序1.c代码如下:
#include <stdio.h>
#include <conio.h>
#define TRUE 1
#define FALSE 0
#define MIN_INPUT 0x20
#define MAX_INPUT 0x7e
/*
* 所有功能有此函数实现:
* pszPw : 保存密码的缓冲
* iMaxSize :最大的密码长度,该长度必须小于缓冲区大小。
* 返回值为TRUE为成功获取密码。总是返回TRUE
*/
int GetPassword(unsigned char* pszPw,int iMaxSize)
{
unsigned char ch;
int i=0;
int bIsEcho=TRUE;
//while( ! kbhit() && i<iMaxSize )
while( ( ch = (unsigned char)getch() ) && i < iMaxSize )
{
//ch = (unsigned char)getch();
bIsEcho=TRUE;
if ( ch == 13)
{
pszPw[i++]=0;
break;
}
else if ( ch >= MIN_INPUT && ch <= MAX_INPUT) /*所有可打印字符*/
{
pszPw[i++]=ch;
}
else if ( ch == 8 && i> 0 ) /*退格键*/
{
pszPw[i--] = 0;
bIsEcho = FALSE;
putchar(
相关文档:
解决方案:linux 下将tomcat的server.xml的端口改为80后以tomcat身份无法启动tomcat。
在redhat上启动tomcat(将server.xml中的端口改为80)
su - tomcat -c "$CATALINA_HOME/bin/startup.sh"
后出现:Catalina.start: LifecycleException: null.open: java.net.BindException: Permission deni ......
陈皓 (CSDN)
概述
——
什么是
makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和
professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解
HTML的标识的含义。特别 ......
GPIO(General Purpose Input/Output的缩写)就是芯片的引脚,引脚是可编程的可对引脚的工作模式进行设置:输入模式(检测输入信号),输出模式(输出0或1),高阻状态(常用于AD转换),还有禁止或允许上内部下拉电阻(上拉:管脚通过电阻接高电平,下拉:管脚通过电阻接地,也可以外部接上拉或下拉电阻),还有管脚复用等功能,即 ......
fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的
一。& 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
二。ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
三。jobs
查看当前有多少在后台运行的 ......