2 个版本 (1 个稳定版)

1.0.0 2023年5月7日
0.1.0 2020年5月18日

#706 in 命令行界面


2 crates 中使用

MIT/Apache

15KB
178

scanpw

从标准输入读取密码


概览

scanpw 提供了一个宏和一个函数(用于更细粒度的错误处理),以安全的方式从标准输入读取密码。它扩展为一个返回 String 的表达式,因此它可以赋值给变量或直接使用。宏可以接受类似于 print 的参数,可以用来生成提示。

示例

简单提示

let password = scanpw!("Password: ");

这将生成如下提示(其中 _ 代表用户开始输入的位置)

Password: _

无提示

let password = scanpw!();

格式化提示

let password = scanpw!("Password for {}: ", username);

自定义回显行为

如果 scanpw 的第一个参数是 Option<char> 类型的表达式,而不是字符串字面量,则用于设置自定义替换字符(例如 Some('X'))或完全禁用回显(例如 None)。例如

// Don't print a '*' for each character the user types
let echo_settings: Option<char> = None;

let password = scanpw!(echo_settings, "Password: ");

默认行为是对于每个输入的字符回显 *

依赖

~3–44MB
~650K SLoC