Rust 如何在不显示用户输入的情况下获取密码输入?
如何在不显示用户输入的情况下获取密码输入Rust 如何在不显示用户输入的情况下获取密码输入?,rust,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); } 更新:您可以使用。引
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);
}
更新:您可以使用。引用自述:
将rpassword
板条箱添加到您的货物中。toml
:
[dependencies]
rpassword = "0.0.4"
然后使用读取密码()
功能:
extern crate rpassword;
use rpassword::read_password;
fn main() {
print!("Type a password: ");
let password = read_password().unwrap();
println!("The password is: '{}'", password);
}
旧答案 我想你最好的选择是:要么是它推荐的替代品(参见 ).当然,棘手的是它的平台不同(如果你能让它工作,它就像一个板条箱一样方便)
根据您的要求,您也可以尝试使用(板条箱“”);我还没有测试过它,但它看起来可能会关闭回显输入。如果您提供的代码有什么作用,请不要让读者猜测(或尝试)它的作用。这是否应该不回显密码,但它会回显,或者代码根本不起作用?请编辑您的问题以扩展该信息。我认为stdin是否自动回显到stdout是由一些termios函数(在POSIX系统下)中的回显标志控制的。对github的快速研究表明,它与一些锈迹绑定:。我还没有深入研究过这个库,所以我不知道它的使用有多容易,但是你可以在这里找到一些有用的信息。如果在cmd中运行,这是有效的,但是如果在cygwinAs中运行失败,那么提示
键入密码:
不会显示在行缓冲标准输出上。您需要手动刷新它(std::io::stdout().flush().unwrap();
)。