基于C++編寫一個密碼系統(tǒng)
1、功能
1.能夠讀取密碼
想要讀取密碼,我們就要利用代碼,來判斷它是否有保存過密碼
// 讀取以前保存的密碼
std::string savedPassword = readPassword();
// 如果沒有保存的密碼,要求設(shè)置新密碼
if (savedPassword.empty()) {
std::cout << "歡迎首次使用,請設(shè)置新密碼:";
std::cin >> newPassword;
}
else {
// 獲取當(dāng)前密碼
讀取密碼之后,我們要進(jìn)行輸入密碼
if (savedPassword.empty()) {
std::cout << "歡迎首次使用,請設(shè)置新密碼:";
std::cin >> newPassword;
}
else {
// 獲取當(dāng)前密碼
std::cout << "請輸入當(dāng)前密碼:";
std::cin >> currentPassword;
// 驗證當(dāng)前密碼
if (currentPassword != savedPassword) {
std::cout << "密碼錯誤,無法進(jìn)行修改!" << std::endl;
return 0;
}
// 獲取新密碼
std::cout << "請輸入新密碼:";
std::cin >> newPassword;
}2.能夠保存密碼
輸入了之后我們要能夠檢查密碼
bool checkPassword(const std::string& password) {
// 檢查密碼是否符合要求,這里只作簡單示例
if (password.length() < 6) {
return false;
}
// 還可以進(jìn)行其他復(fù)雜的密碼檢查規(guī)則
return true;
}
// 驗證新密碼
if (!checkPassword(newPassword)) {
std::cout << "新密碼不符合要求,修改失?。? << std::endl;
return 0;
}
檢查完密碼我們就要進(jìn)行保存
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.能夠更改密碼
當(dāng)我們想換密碼的時候,也要有這個功能
// 獲取當(dāng)前密碼
std::cout << "請輸入當(dāng)前密碼:";
std::cin >> currentPassword;
// 驗證當(dāng)前密碼
if (currentPassword != savedPassword) {
std::cout << "密碼錯誤,無法進(jìn)行修改!" << 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;
}
// 還可以進(jìn)行其他復(fù)雜的密碼檢查規(guī)則
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();
// 如果沒有保存的密碼,要求設(shè)置新密碼
if (savedPassword.empty()) {
std::cout << "歡迎首次使用,請設(shè)置新密碼:";
std::cin >> newPassword;
}
else {
// 獲取當(dāng)前密碼
std::cout << "請輸入當(dāng)前密碼:";
std::cin >> currentPassword;
// 驗證當(dāng)前密碼
if (currentPassword != savedPassword) {
std::cout << "密碼錯誤,無法進(jìn)行修改!" << 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++編寫一個密碼系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于C++密碼系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android App仿微信界面切換時Tab圖標(biāo)變色效果的制作方法
這篇文章主要介紹了Android App仿微信界面切換時Tab圖標(biāo)變色效果的制作方法,重點講解了圖標(biāo)的繪制技巧,需要的朋友可以參考下2016-04-04
C++11中std::declval的實現(xiàn)機(jī)制淺析
這篇文章主要給大家介紹了關(guān)于C++11中std::declval實現(xiàn)機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07
MATLAB全網(wǎng)最全的colormap的使用教程詳解
眾所周知,MATLAB中的colormap只有少得可憐的幾種,有很多應(yīng)用在很特殊的圖形中的colormap幾乎都沒有,而每次寫代碼都要去找顏色的圖屬實太麻煩。所以本文將包全部集成了進(jìn)來,終于有了這套包含200個colormap的工具函數(shù),希望對大家有所幫助2023-02-02
基于epoll的多線程網(wǎng)絡(luò)服務(wù)程序設(shè)計
這篇文章主要為大家詳細(xì)介紹了基于epoll的多線程網(wǎng)絡(luò)服務(wù)程序設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
C語言實現(xiàn)交換排序算法(冒泡,快速排序)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)交換排序算法(冒泡排序、快速排序),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-07-07

