如何在不显示用户输入的情况下输入密码?

fen*_*gsp 7 rust

如何在不显示用户输入的情况下输入密码?

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)

Cas*_*par 9

更新:您可以使用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可能演示关闭回显输入.