开发者

How to get a password with a CLI program?

I am writing a Linux CLI program. I need to get a password from the user and, obviously, I don't want the password to be echoed to the console.

There are several solutions available here, but they are all for plain C. C command-line password input

How to开发者_开发技巧 mask password in c?

Getting a password in C without using getpass (3)?

How can those be adapted for C++, using std::string instead of char[]?

What would be the most elegant C++ solution?


Use any of the plain C solutions:

std::string pass (100);  // size the string at your max password size (minus one)

func_to_get_pass(&pass[0], pass.size());
// function takes a char* and the max size to write (including a null char)

pass.resize(pass.find('\0'));

cout << "Your password is " << pass << ".\n"; // oops! don't show it ;)


Linux itself is written (mostly) in C, so anything you could find in C++ would only be an abstraction around a single C routine. Better to call the routine yourself, converting the input and result.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜