C语言实现密码本小项目
一、引言
学C语言有一段时间了,趁着正好做了密码本的小项目,把它分享出来。
二、思路与原理
密码本,见名知意,就是存放账号密码,起到备忘录作用的本子,将需要备忘的数据通过加密存放在文本文件中,打开的文本文件为加密文本,需要通过软件查看已经存放的数据,提高安全性。(软件设计了启动密码,三次过后自动退出)
项目目标:
- 保存账号密码,退出后打开软件数据不丢失
- 进行简单加密
- 能按条件查找账号密码
- 能修改账号密码数据
- 能按条件进行删除数据
知识涉及到数组、文件操作的使用以及简单异或加密。
软件的部分截图如下:
三、实现
1.头文件及数据定义
在密码本的小项目中我设立四个了存放数据的数组,所存放的账号密码的站点,存放的账号,存放的密码以及备注。定义了一个全局变量,用来计数当前密码本使用的条数。
#define_CRT_SECURE_NO_WARNINGS #include#include #include //定义四个数组,用来存放站点、账号、密码、备注的值 charwebSite[100][20]; charuserName[100][20]; charpassWord[100][20]; charreMark[100][20]; //定义一个全局变量 intg_count=0;
2.程序的整体框架
intmain(void) { InitInfo(); intnChoice=1; StartPassWord(); while(nChoice) { printf("*********************************欢迎使用密码本*********************************\n"); printf("请输入以下选项进行操作:\n"); printf("1、增加数据\n"); printf("2、删除数据\n"); printf("3、修改数据\n"); printf("4、查询数据\n"); printf("5、全部数据\n"); printf("6、结束程序\n"); printf("********************************************************************************\n"); scanf_s("%d",&nChoice); switch(nChoice) { case1: { AddInfo();//增加数据 }break; case2: { DelInfo();//删除数据 }break; case3: { EditInfo();//修改数据 }break; case4: { FindInfo();//查询数据 }break; case5: { ReadAllInfo();//查看全部 }break; case6: { nChoice=0;//退出程序 }break; } } printf("欢迎下次使用!\n"); system("pause"); return0; }
3.函数的声明
//启动时输入密码 voidStartPassWord(); //增加数据 voidAddInfo(); //删除数据 voidDelInfo(); //修改数据 voidEditInfo(); //查询数据 voidFindInfo(); //读取全部数据 voidReadAllInfo(); //保存数据 voidSaveInfo(); //初始化数据 voidInitInfo();
4.各个函数的实现
//增加数据 voidAddInfo() { printf("输入需要存储的站点:"); scanf_s("%s",webSite[g_count],20); printf("输入需要存储的账号:"); scanf_s("%s",userName[g_count],20); printf("输入需要存储的密码:"); scanf_s("%s",passWord[g_count],20); printf("输入需要存储的备注:"); scanf_s("%s",reMark[g_count],20); g_count++; SaveInfo(); InitInfo(); system("pause"); system("cls"); } //查看全部 voidReadAllInfo() { FILE*pfile; if(fopen_s(&pfile,"data.i","r")!=0) { printf("fileopenfail"); exit(1); } fscanf_s(pfile,"当前个数%d\n",&g_count); printf("当前有%d条数据\n",g_count); for(inti=0;i5.关于加密
异或加密:异或是一种运算方式,在C语言中是^符号,通常可以用于加密。
例如项目中的实现
for(intj=0;j四、总结
程序中还有很有缺陷,第一次写博客,希望大家多多包涵!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。