如何在不显示用户输入的情况下输入密码?
fn main() {
println!("Type Your Password");
// I want to hide input here, and do not know how
let input = std::old_io::stdin().read_line().ok().expect("Failed to read line");
println!("{}", input);
}
Run Code Online (Sandbox Code Playgroud)
更新:您可以使用rpassword包.引自README:
将rpassword箱子添加到您的Cargo.toml:
[dependencies]
rpassword = "0.0.4"
Run Code Online (Sandbox Code Playgroud)
然后使用该read_password()功能:
extern crate rpassword;
use rpassword::read_password;
fn main() {
print!("Type a password: ");
let password = read_password().unwrap();
println!("The password is: '{}'", password);
}
Run Code Online (Sandbox Code Playgroud)
我怀疑你最好的选择是从锈中调用一些C函数:getpass(3)或其推荐的替代方法(请参阅 在C中获取密码而不使用getpass).棘手的是,它当然不同于平台(如果你让它工作,它就像箱子一样方便).
根据您的要求,您也可以尝试使用ncurses-rs(crate" ncurses "); 我没有测试它,但看起来示例2可能演示关闭回显输入.