优化C++制作的简易密码管理工具
发布日期:2022-03-03 10:44:09
浏览次数:14
分类:技术文章
本文共 1956 字,大约阅读时间需要 6 分钟。
最近空闲时间较多,特地复习下C++的基础知识。
原文地址
修改(优化)点:
- 修复从文件中读取数据、把数据重新写入文件等BUG使软件能正常运行
- 删除持久化数据的多余空格
- 修改每次新增都持久化为先缓存再手动持久化
- 原作只管加密不管解密
- 下一步基于Qt图形化
操作截图如下:
代码如下:
#define _CRT_SECURE_NO_WARNINGS#include#include #include #include #include #define fopen_s(pFile,filename,mode) ((*(pFile))=fopen((filename), (mode)))==NULLusing namespace std;/* global variables */int lnChrLmt=20;int lnsLmt=10;int gCnt = 0;char websiteArr[10][20];char usernameArr[10][20];char passwordArr[10][20];char remarkArr[10][20];char filePath[20] = "data.txt";char spw[20] = "abcd";int retryCnt = 3;void init();void readAll();void search();void append();void save();void remove();void edit();void startPwd();void show();void dump();// remove a element from arrayint remove_from_array(char a[10][20], int n, int &len) { if(a == NULL || n<0 || len < 0 || n>=len) { return -1; } int i; for(i = n; i < len-1; i ++) { memcpy(static_cast (a[i]), static_cast (a[i+1]), lnChrLmt); } --len; return 0;}// initailize programvoid init() { FILE *pFile; if(fopen_s(&pFile, filePath, "r")!=0) { printf("error open when init"); system("pause"); exit(1); } int c; do { c=fgetc(pFile); if (c=='\n') { gCnt++; } } while(c!=EOF); fseek(pFile, 0, SEEK_SET); for(int i=0; i =0; i--) { if(strcmp(spw, tmpStr)==0) { nSucceed = true; break; } else { printf(retryCnt+" times left"); } } if(!nSucceed) { printf("error password"); } else { printf("press any key to continue...\n"); } system("pause");}// read data from cachevoid readAll() { for(int i=0; i =0) { remove_from_array(websiteArr, i, lnsLmt); remove_from_array(usernameArr, i, lnsLmt); remove_from_array(passwordArr, i, lnsLmt); remove_from_array(remarkArr, i, lnsLmt); printf("lnChrLmt: %d\n",lnChrLmt); gCnt--; break; } } printf("remove success\n");}// edit one record in cachevoid edit() { char tmpStr[lnChrLmt]; int targetIndex=-1; printf("input website to edit: "); scanf("%s", tmpStr); for(int i=0; i
转载地址:https://blog.csdn.net/yangjiegang8/article/details/104146880 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月05日 22时40分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
最新的全球编程语言,操作系统,web服务器等使用率分析报告
2019-04-27
用C语言写PHP扩展
2019-04-27
PHP Extension programming
2019-04-27
海量数据处理
2019-04-27
PHP防止注入攻击
2019-04-27
多路IO复用模型 select epoll 等
2019-04-27
Linux Epoll介绍和程序实例
2019-04-27
output_buffering详细介绍
2019-04-27
php缓冲 output_buffering和ob_start
2019-04-27
php error_reporting 详解
2019-04-27
剖析PHP中的输出缓冲
2019-04-27
HTTP响应头不缓存
2019-04-27
PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
2019-04-27
Javascript到PHP加密通讯的简单实现
2019-04-27
德国SNS交友/视频网站Poppen.de的技术架构分享
2019-04-27
UNIX环境编程
2019-04-27
一笔画问题【数据结构-图论】
2019-04-27
红黑树
2019-04-27
安装多个gcc
2019-04-27
Linux0.01内核根目录Makefile注释
2019-04-27