基于C++编写一个密码系统

 更新时间:2023年11月27日 10:41:29   作者:君莫胖  
这篇文章主要为大家详细介绍了如何基于C++编写一个简单的密码系统,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

1、功能

1.能够读取密码

想要读取密码,我们就要利用代码,来判断它是否有保存过密码

// 读取以前保存的密码
std::string savedPassword = readPassword();
 
// 如果没有保存的密码,要求设置新密码
if (savedPassword.empty()) {
    std::cout << "欢迎首次使用,请设置新密码:";
    std::cin >> newPassword;
}
else {
    // 获取当前密码

读取密码之后,我们要进行输入密码

if (savedPassword.empty()) {
    std::cout << "欢迎首次使用,请设置新密码:";
    std::cin >> newPassword;
}
else {
    // 获取当前密码
    std::cout << "请输入当前密码:";
    std::cin >> currentPassword;
 
    // 验证当前密码
    if (currentPassword != savedPassword) {
        std::cout << "密码错误,无法进行修改!" << std::endl;
        return 0;
    }
 
    // 获取新密码
    std::cout << "请输入新密码:";
    std::cin >> newPassword;
}

2.能够保存密码

输入了之后我们要能够检查密码

bool checkPassword(const std::string& password) {
    // 检查密码是否符合要求,这里只作简单示例
    if (password.length() < 6) {
        return false;
    }
    // 还可以进行其他复杂的密码检查规则
    return true;
}
// 验证新密码
if (!checkPassword(newPassword)) {
    std::cout << "新密码不符合要求,修改失败!" << std::endl;
    return 0;
}

检查完密码我们就要进行保存

savePassword(newPassword);
void savePassword(const std::string& password) {
    std::ofstream file("password.txt");
    if (file.is_open()) {
        file << password;
        file.close();
        std::cout << "密码保存成功!" << std::endl;
    }
    else {
        std::cout << "密码保存失败!" << std::endl;
    }
}

3.能够更改密码

当我们想换密码的时候,也要有这个功能

// 获取当前密码
std::cout << "请输入当前密码:";
std::cin >> currentPassword;
 
// 验证当前密码
if (currentPassword != savedPassword) {
    std::cout << "密码错误,无法进行修改!" << std::endl;
    return 0;
}
 
// 获取新密码
std::cout << "请输入新密码:";
std::cin >> newPassword;

2、完整代码

#include<iostream>
#include<string>
#include<fstream>
#include <iostream>
#include <fstream>
#include <string>
bool checkPassword(const std::string& password) {
	// 检查密码是否符合要求,这里只作简单示例
	if (password.length() < 6) {
		return false;
	}
	// 还可以进行其他复杂的密码检查规则
	return true;
}
 
void savePassword(const std::string& password) {
	std::ofstream file("password.txt");
	if (file.is_open()) {
		file << password;
		file.close();
		std::cout << "密码保存成功!" << std::endl;
	}
	else {
		std::cout << "密码保存失败!" << std::endl;
	}
}
 
std::string readPassword() {
	std::string password;
	std::ifstream file("password.txt");
	if (file.is_open()) {
		file >> password;
		file.close();
	}
	return password;
}
using namespace std;
using namespace std;
#define MAX 50
int main()
{
 
 
	std::string currentPassword;
	std::string newPassword;
 
	// 读取以前保存的密码
	std::string savedPassword = readPassword();
 
	// 如果没有保存的密码,要求设置新密码
	if (savedPassword.empty()) {
		std::cout << "欢迎首次使用,请设置新密码:";
		std::cin >> newPassword;
	}
	else {
		// 获取当前密码
		std::cout << "请输入当前密码:";
		std::cin >> currentPassword;
 
		// 验证当前密码
		if (currentPassword != savedPassword) {
			std::cout << "密码错误,无法进行修改!" << std::endl;
			return 0;
		}
 
		// 获取新密码
		std::cout << "请输入新密码:";
		std::cin >> newPassword;
	}
 
	// 验证新密码
	if (!checkPassword(newPassword)) {
		std::cout << "新密码不符合要求,修改失败!" << std::endl;
		return 0;
	}
 
	// 保存密码
	savePassword(newPassword);
 
	// 修改密码成功
	std::cout << "密码修改成功!" << std::endl;
}

以上就是基于C++编写一个密码系统的详细内容,更多关于C++密码系统的资料请关注脚本之家其它相关文章!

相关文章

  • Android App仿微信界面切换时Tab图标变色效果的制作方法

    Android App仿微信界面切换时Tab图标变色效果的制作方法

    这篇文章主要介绍了Android App仿微信界面切换时Tab图标变色效果的制作方法,重点讲解了图标的绘制技巧,需要的朋友可以参考下
    2016-04-04
  • C++11中std::declval的实现机制浅析

    C++11中std::declval的实现机制浅析

    这篇文章主要给大家介绍了关于C++11中std::declval实现机制的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 利用上下文属性将 C++ 对象嵌入 QML 里

    利用上下文属性将 C++ 对象嵌入 QML 里

    这篇文章主要介绍了利用上下文属性将 C++ 对象嵌入 QML里,将 QML 对象加载到 C++ 应用程序中时,直接嵌入一些可在 QML 代码中使用的 C++ 数据会很有用。例如,这使得在嵌入对象上调用 C++ 方法或使用 C++ 对象实例作为 QML 视图的数据模型成为可能,下面一起来学习该内容吧
    2021-12-12
  • 浅析C++字节对齐容易被忽略的两个问题

    浅析C++字节对齐容易被忽略的两个问题

    今天我就和大家分享一下C++字节对齐容易被忽略的两个问题。以下问题也是我实际开发工作中遇到的,如果有不同意见欢迎交流
    2013-07-07
  • MATLAB全网最全的colormap的使用教程详解

    MATLAB全网最全的colormap的使用教程详解

    众所周知,MATLAB中的colormap只有少得可怜的几种,有很多应用在很特殊的图形中的colormap几乎都没有,而每次写代码都要去找颜色的图属实太麻烦。所以本文将包全部集成了进来,终于有了这套包含200个colormap的工具函数,希望对大家有所帮助
    2023-02-02
  • C++用boost.signal实现多播委托

    C++用boost.signal实现多播委托

    这篇文章介绍了C++用boost.signal实现多播委托的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 基于epoll的多线程网络服务程序设计

    基于epoll的多线程网络服务程序设计

    这篇文章主要为大家详细介绍了基于epoll的多线程网络服务程序设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C/C++ 浅拷贝和深拷贝的实例详解

    C/C++ 浅拷贝和深拷贝的实例详解

    这篇文章主要介绍了C/C++ 浅拷贝和深拷贝的实例详解的相关资料,帮助大家理解这部分知识提供了基础知识及实例,需要的朋友可以参考下
    2017-08-08
  • C语言实现交换排序算法(冒泡,快速排序)的示例代码

    C语言实现交换排序算法(冒泡,快速排序)的示例代码

    这篇文章主要为大家详细介绍了如何利用C语言实现交换排序算法(冒泡排序、快速排序),文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-07-07
  • Qt自定义控件实现进度仪表盘

    Qt自定义控件实现进度仪表盘

    这篇文章主要介绍了Qt自定义控件实现进度仪表盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论