getpass函数用法

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()输入密码后,该密码最好尽快处理完毕,然后将该密码字符串清除

你可能感兴趣的:(unix,函数,C语言,密码,控制台)