您的位置:首页 > 编程语言 > PHP开发

getpass函数用法

2016-03-16 20:45 309 查看
getpass()函数用于从控制台输入一行字符串,关闭了回显(输入时不显示输入的字符串),适用于用密码的输入。

语法 char * getpass (const char * prompt);

参数prompt为提示字符串地址。

getpass()函数返回值:输入字符串地址。

#include
#include
int main(void)
{
char *password;
password = getpass("Input a password:"); /*输入密码*/
printf("The password is: %s/r/n", password); /*显示密码*/
return 0;
}
getpass函数通常会与crypt加密函数一同使用,

 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <crypt.h>
  int main()
  {
   char passwd[13];
   char *key;
    char slat[2];
   key = getpass("Input first passward:");
    slat[0] = key[0];
    slat[1] = key[1];
  
   strcpy(passwd,crypt(key,slat));
  key = getpass("Input second passward:");
  
   slat[0] = passwd[0];
   slat[1] = passwd[1];
    printf("After crypt(),1st passwd:%s\n",passwd);
    printf("After crypt(),2st passwd:%s\n",passwd);
    return 0;
  }
gcc -lcrypt xxx.c

[root@iZ28o6dlzs9Z process]# ./a.out

Input first passward: //test

Input second passward: //test

After crypt(),1st passwd:teH0wLIpW0gyQ

After crypt(),2st passwd:teH0wLIpW0gyQ

getpass函数man翻译

函数说明:getpass()会显示参数prompt所指的字符串,然后从/dev/tty中读取所输入的密码,若无法从/dev/tty中读取则会转从标准输入设备中读取密码。所输入的密码长度限制在128个字符,包含结束字符NULL, 超过长度的字符及换行字符/n将会被忽略。在输入密码时getpass()会关闭字符回应,并忽略一些信号如CTRL-C
或 CTRL-Z所产生的信号

返回值 :返回一个指向以NULL结尾的密码字符串

附加说明:为了系统安全考虑,在般在使用getpass()输入密码后,该密码最好尽快处理完毕,然后将该密码字符串清除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: