悬赏100分 如何用c语言 写一个密码程序
用C语言写个简单的6位密码程序初始密码为123456并存在cipher.dat文件中,每输以为一位密码就在屏幕上输出一个*,如果密码错误就进行提示重新输入感谢各位高手解答...
用C语言写个简单的6位密码程序 初始密码为123456并存在cipher.dat文件中,每输以为一位密码就在屏幕上输出一个 * ,如果密码错误 就进行提示 重新输入 感谢各位高手解答
展开
8个回答
展开全部
不限制密码长度,支持回退功能。
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
string expwd;
ifstream ifs("cipher.dat");
ifs >> expwd;
ifs.close();
while (true) {
cout << endl << "Please input the password: ";
string rdpwd;
do {
int ch = getch();
if (ch == '\r') {
cout << endl;
break;
} else if (ch == '\b') {
if (rdpwd.length() > 0) {
rdpwd.erase(rdpwd.length() - 1, 1);
cout << "\b \b";
}
} else {
rdpwd += ch;
cout << '*';
}
} while (true);
if (expwd == rdpwd) {
cout << endl << "Password is right!" << endl;
break;
} else
cout << endl << "Password is wrong, please try again..." << endl;
}
return 0;
}
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
string expwd;
ifstream ifs("cipher.dat");
ifs >> expwd;
ifs.close();
while (true) {
cout << endl << "Please input the password: ";
string rdpwd;
do {
int ch = getch();
if (ch == '\r') {
cout << endl;
break;
} else if (ch == '\b') {
if (rdpwd.length() > 0) {
rdpwd.erase(rdpwd.length() - 1, 1);
cout << "\b \b";
}
} else {
rdpwd += ch;
cout << '*';
}
} while (true);
if (expwd == rdpwd) {
cout << endl << "Password is right!" << endl;
break;
} else
cout << endl << "Password is wrong, please try again..." << endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这题很简单,你只要会2个问题就可以了
1.读写文件,以及打开和关闭文件
2.输入的数据进行保存并在屏幕上打印*,输入结束后进行对比
1.读写文件,以及打开和关闭文件
2.输入的数据进行保存并在屏幕上打印*,输入结束后进行对比
追问
第一个我会
如何打印呢? 输入密码时总看得到 这个问题如何解决?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
d 和shadow文件里面的内容
第一步
读取 判断吧 passwd 和shadow内容
把用户和密码存入一个数组
第二步
输入面貌
调用系统md5进行散列
第三步 把散列值保存到相应的地方
第四步退出喽
第一步
读取 判断吧 passwd 和shadow内容
把用户和密码存入一个数组
第二步
输入面貌
调用系统md5进行散列
第三步 把散列值保存到相应的地方
第四步退出喽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询