读取密码时在控制台上显示%s
Displaying *s on console when reading password
我一直在尝试用C++为一个学校项目制作一个暴力程序,但我想让你输入的密码受到审查,所以它不会像密码一样是**PS这是一个控制台应用
这是我的C++代码:
#include <iostream>
#include <string>
using namespace std;
char chars[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','W','R','S','T','U','V','W','X','Y','Z'};
string t;
void checkPassword(string password);
void recurse(int width, int position, string baseString);
int main() {
cout << "Enter a Password: " << endl;
cin >> t;
int maxChars = 13;
for(int i=0;i<maxChars+1;i++) {
cout << "checking passwords width [" << i << "]..." << endl;
recurse(i,0,"");
}
return 0;
}
void recurse(int width, int position, string baseString) {
for(int i=0;i<70;i++) {
if (position < width-1) {
recurse(width, position + 1, baseString+chars[i]);
}
checkPassword(baseString+chars[i]);
}
}
void checkPassword(string password) {
if (password==t) {
cout << "Match Found: " << password << "" << endl;
return;
}
}
我已经尝试了很多,但似乎无法成功,提前谢谢。
控制台程序不具备执行此操作的功能。如果你在Windows机器上工作,不需要任何跨平台的可移植性,你可以使用非标准的conio.h库的getch()
函数来模拟cin
,同时替换字符。但我真诚地建议不要采取这种迂回的做法。如果你真的需要对密码进行审查,我建议你要么把程序变成GUI应用程序,要么让用户把密码输入到一个文件中,然后给出文件名(这样它就不会直接出现在屏幕上)。
相关文章:
- 控制台输出在 Qt5 中未正确显示
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 为什么调试时没有显示控制台窗口
- 将控制台输出写入.txt并在控制台上显示
- 当被一个输入分开时,有两个控制台输出同时显示
- 如何在控制台应用程序中添加滚动功能以显示更大的输入
- 在任何 Windows 版本上全屏显示控制台
- C++:显示控制台窗口的输出
- C++:如何在控制台窗口中显示结果
- 控制台输出显示ASCII值,而不是数字的预期数字
- C++/CLI 项目如何在控制台窗口中显示消息
- Linux C LIBEV官方示例显示了冗余控制台行为
- QProcess::startDetached() 不显示控制台窗口
- 关闭应用程序而不显示控制台窗口
- 如何在C++中显示控制台应用程序中的 MFC 对话框
- 不要在发布时显示控制台窗口,而是在调试时显示
- Q使用显示控制台处理STDIN
- 如何在窗口下使用cmake在qt GUI应用程序中显示控制台
- 如何让 MATLAB 的系统() 或 dos() 实时显示控制台输出?
- C++使用 Windows 和 MinGW 在 Eclipse 中编写的程序无法显示控制台视图的输出