龙空技术网

Linux C,如何在输入密码时做到不回显?

猪瘾犯了 806

前言:

今天你们对“c语言不回显”大体比较注意,姐妹们都想要分析一些“c语言不回显”的相关知识。那么小编在网摘上收集了一些关于“c语言不回显””的相关文章,希望朋友们能喜欢,姐妹们一起来学习一下吧!

设置密码时,为了防止密码泄露,一般都会要求程序不回显,或者回显为”*”字样。但这样存在一个问题:密码输入之后,用户不确定输入的密码是否是自己想要的。为了避免这种情况的发生,有了二次确认的机制:让用户输入两次,两次的结果相同,再进行下一步操作。Linux C中可使用以下两种方式让密码不回显。

使用unistd.h头文件中声明的getpass()函数

该方式无法被ctrl + c信号中断,输入回车才可结束输入。并且使用 echo “WHAT?” | ./test的方式注入标准输入无效。

使用termio.h头文件中声明的tcsetattr()函数

该方式可以被ctrl + c信号中断,也可以使用echo “WHAT?” | ./test的方式注入标准输入。

如果发现程序退出后,敲命令无回显,可以使用stty echo命令打开终端的回显(stty -echo命令可关闭终端的回显)。

标签: #c语言不回显