易截截图软件、单文件、免安装、纯绿色、仅160KB

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 的多线程编程的高效开发经验

2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......

[转贴]Linux网络驱动程序

Linux驱动程序
--------------------------------------------------------------------------------
工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨L ......

Linux热插拔


Linux热插拔
from: 
http://blog.chinaunix.net/u1/34190/showart_287894.html
将可移动设备连入系统时,系统的后台中会依次发生如下事件:
l         
内核检测到新硬件插入,然后分别通知
hotplug

udev
。前者用来装入相应的内核模块
(

usb-stora ......

linux 命令

、Linux里查看所有用户
  linux里,并没有像windows的net user,net localgroup这些方便的命令来治理用户.
  Xwindows界面的就不说了.
  (1)在终端里.其实只需要查看 /etc/passwd文件就行了.
  (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.
  或者用cat /etc/passwd |cut -f 1 -d : ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号