| Crates.io | scanpw |
| lib.rs | scanpw |
| version | 1.0.0 |
| created_at | 2020-05-18 04:37:14.073492+00 |
| updated_at | 2023-05-07 02:58:00.793958+00 |
| description | Read a password from standard input |
| homepage | https://or.computer.surgery/charles/scanpw |
| repository | https://or.computer.surgery/charles/scanpw |
| max_upload_size | |
| id | 242877 |
| size | 44,859 |
scanpwRead a password from standard input
scanpw provides a macro and a function (for more granular error handling) to
facilitate reading passwords from standard input in a secure manner. It expands
to an expression that returns a String, so it can be assigned to
a variable or used directly. The macro may take arguments like those to
print, which can be used to generate a prompt.
let password = scanpw!("Password: ");
This results in a prompt that looks like this (where _ represents where the
user will start typing):
Password: _
let password = scanpw!();
let password = scanpw!("Password for {}: ", username);
If the first argument to scanpw is an expression of type Option<char>
instead of a string literal, it is used to either set a custom replacement
character (like Some('X')) or disable echoing entirely (like None). For
example:
// Don't print a '*' for each character the user types
let echo_settings: Option<char> = None;
let password = scanpw!(echo_settings, "Password: ");
The default behavior is to echo *s for each character entered.