当前位置:  技术问答>linux和unix

请问哪位大哥有命令行输入密码的C源程序?

    来源: 互联网  发布时间:2015-04-29

    本文导语:  我希望我输入密码的时候系统不显示或者显示“×”。 我找了一些代码,但是可惜是M$的,所以不能正常工作!!! | 很急么? #include  #include  #include  #include  #include  #include  int getPasswd...

我希望我输入密码的时候系统不显示或者显示“×”。

我找了一些代码,但是可惜是M$的,所以不能正常工作!!!

|
很急么?

#include 
#include 
#include 
#include 
#include 
#include 


int getPasswd(char *passwd)
{
        struct termio tbuf_old,tbuf;


        ioctl(0, TCGETA, &tbuf_old);
        ioctl(0, TCGETA, &tbuf);
        tbuf.c_lflag &=~ECHO;
        if (ioctl(0, TCSETAF, &tbuf) != 0)
      return;
        printf("请输入口令:");
        scanf("%s", passwd);
        ioctl(0, TCSETAF, &tbuf_old);
        return 0;
}

|
用ioctl 设置no ECHO

|
对!修改termcap的属性。
参考:
http://www.fanqiang.com/a4/b9/20010820/0900001151.html

|
打印* 的那种情况呢,谁有?

|
我将楼上的程序改了改,在红帽7.2上调试通过。


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

static struct termios originalTermParam;
static void set_keypress ( void )
{
   struct termios currentTermParam;

   tcgetattr( 0, &originalTermParam );
   memcpy( ¤tTermParam, &originalTermParam, sizeof( struct termios ) );

   currentTermParam.c_lflag       &= ~ICANON;
   currentTermParam.c_lflag       &= ~ECHO;
   currentTermParam.c_cc[ VTIME ]  = 255;
   currentTermParam.c_cc[VMIN]     = 1;

   tcsetattr( 0, TCSANOW, ¤tTermParam );
   return;
}

void reset_keypress ( void )
{
   tcsetattr( 0, TCSANOW, &originalTermParam );
   return;
}


int getpasswd_x(char *passwd)
{
        char ch;
        int i = 0;
        struct termio tbuf_old,tbuf;

        ioctl(0, TCGETA, &tbuf_old);
        ioctl(0, TCGETA, &tbuf);
        tbuf.c_lflag &= ~ECHO;

        if (ioctl(0, TCSETAF, &tbuf) != 0)
                return -1;

        printf("pleas input your password:n");

        read(0, &ch, 1);
        while ( ch != 'n' ) {

                passwd[i++] = ch;
                write(0, "*", 1);
                read(0, &ch, 1);
        }
        passwd[i] = '';

        ioctl(0, TCSETAF, &tbuf_old);

        return 0;
}

main()
{
   char passd[100];

   set_keypress();
   getpasswd_x(passd);
   reset_keypress();
   printf("npassword:%sn",passd);
}

|
NAME
       getpass - get a password

SYNOPSIS
       #include 

       char *getpass( const char * prompt );

|
flush

|
不行的;
它好像要等终端输入一行完后,(就是回车后),它才开始getchar()一个一个地读呀
也就是说在输入那一行时是阻赛的;

|
dchg2000(偏爱小龙女)  ==  daehappy (追求120%结贴)  ????
晕了,晕了……

    
 
 

您可能感兴趣的文章:

  • 请问哪有像样的源程序可供下载
  • 请问那里能下载到QT的源程序?
  • 请问怎样在源程序中调用终端指令?
  • 请问如何调用LINUX中源程序中的代码?
  • 请问怎么看系统标准库函数的源程序?
  • 请问那里有DOS核心源程序下载,急用,先谢了!
  • 请问高手们,哪里有EJB的学习资料或是源程序?
  • 请问jdk源程序中,许多native方法是怎么实现的?
  • 请问怎样在jbuilder中设置源程序编辑的格式?
  • 我是一名JAVA初学者,请问哪里有比较好的JAVA的源程序下载
  • 请问这个源程序要如何编译? Spidermonkey1.6
  • 请问那里有比较好的java写的文字编辑(就好象word)那样的源程序呀?sun的例子除外!
  • 请问哪里有,播放rm,mpeg4格式的源程序下载,Linux下的,Window下的也行。
  • =====请问怎样将Java 源程序编译成 Win32 可执行文件?========
  • 请问各位大哥:如何将FRAME上的咖啡标志改成自己设计的标记呢?一定加分!急!急!急!
  • 请问各位大哥。谁知道LINUX下怎么安装软件包!!! (高分提问)
  • 请问哪个大哥有source insight3.5版的KEY
  • 请问我的LINUX为什么启动不了?请大哥门帮帮我!
  • 请问各位大哥,Linux最新版哪里有的下载?
  • 请问各位大哥,能在普通的Pc机器上面安装Mac X吗?
  • 我是一个LINUX新手,请问哪有基础教程的好书,最好是电子版的,谢谢各位大哥~~~!!
  • 请问各位大哥,JAVA的建模工具有那些?
  • 请问哪位大哥有Redhat Fedora Core 2的安装指南和入门指南
  • 大哥大姐帮帮忙,请问gtk+和gdk方面的书籍在哪里下载。哪本书好。
  • 各位大哥,请问怎样在solaris下安装SSLeay。具体步骤 ,谢谢
  • 请问各位大哥,linux下的普通用户可不可以在别人的机器上安装程序,
  • 请问各位大哥,字符界面的RedHat 9.0可以上网吗? 怎样实现?
  • 请问:TCP程序为何有时会丢包,请各位大哥指点
  • 请问在linux下的浏览器是不是不支持ActiveX控件,有替代的吗?各位大哥来帮帮忙
  • 请问各位大哥:现在用的是中文linux吗?(常用的服务器系统用何种版本的linux?)
  • 请问各位大哥j2sdk1.4.1的路径怎么设置呀,小弟非常苦恼!Help Me!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问各位大虾,ping命令的端口是多少?把某个端口封掉,用什么命令?
  • 请问如何清掉linux的操作命令记录?就是按上下键不能查看以前执行的命令,谢谢
  • 请问LINUX7.2下,哪条命令是查看系统上曾经执行过的执行命令?(包括启动以前的)
  • 请问用哪个命令可以在命令行里显示系统当前的时间?
  • 请问能否在程序中嵌入命令行(linux)中的命令,如果可以应该怎样做,谢谢!!!
  • 在Unix下用rm命令误删除了文件,然后再无其它操作,请问,可以恢复吗?有直接的命令吗?
  • 请问:早redhat 7.3的字符模式下:改(设)IP 命令是:ifconfig eth0 192.168.0.xx ,那么改(设)掩码命令是什么呢? 还有改(设)网关地址命令是什
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 自己实现linux下的ftp客户端,先用port命令后用append命令,报告错误425请问是哪里错了?,应该把模式置为pasv嘛??
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问此命令是何意!
  • 请问在vi中命令用法
  • 请问如何才能恢复命令行界面?
  • 请问,在Cramfs文件系统中怎样实现历史命令记录
  • 请问一下dd命令的实现机制,哪里能看到
  • 菜问一则:请问用什么命令可得到系统路径
  • 请问Linux显示当前版本的命令是什么?谢谢
  • 请问用rm 命令删掉的目录(含文件)有什么办法恢复?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件 iis7站长之家
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3