程序功能:个人重要信息如各种账号密码可以用文本文件存起来。如未加密,很容易造成个人信息泄露。本程序对文本信息文件进行加解密,未加密文件名为yuan.wen,加密后的文件名为mi.wen。平时只保留加密后的文件,需要原文件时解密即可。加解密时需要输入密码,进一步保证了安全性。源程序建议压缩加密保存。
代码语言为C++,程序要正常运行,
1. 需要在代码第12~16行设置好密码和加密解密映射表。
2. 提前准备需要加密的文件和已加密的文件。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<fstream>
#include<conio.h>
#include<iomanip>
using std::cin;
using std::cout;
using std::ifstream;
using std::ofstream;
using std::string;
const string PW = ""; //设置密码
const string SP = ""; //设置超级密码
unsigned int m[256]={
0,......,255}; //加密映射表
unsigned int y[256]={
0,......,255}; //解密映射表
void getpw(char pw[]){
int i=0;
for (char c=_getch();c!=13;c=_getch())
if (c!='\b')
pw[i++]=c,printf("*");
else{
if (i>0){
printf("\b \b");
i--;
}
}
pw[i] = '\0';
printf("\n");
}
int main(){
char pw[256];
for (int i=3;true;i--){
if (i==0){
cout << "3次机会已用完!\n";
return 0;
}
cout << "输入操作密码:";
getpw(pw);
if (PW==pw || SP==pw) break;
else{
cout << "密码错误!\n";
}
}
cout << "加密还是解密?加密输0,解密输1:";
int flag;
string InputName,OutputName;
cin >> flag;
if (flag==0) //加密
InputName = "yuan.wen", OutputName = "mi.wen";
else //解密
InputName = "mi.wen", OutputName = "yuan.wen";
ifstream fin(InputName.c_str());
ofstream fout(OutputName.c_str());
char c;
while (~(c=fin.get())){
c = (char)(flag?y[(unsigned char)c]:m[(unsigned char)c]);
fout << c;
}
cout << (flag?"解密成功!\n":"加密成功!\n");
system("pause");
fin.close();
fout.close();
return 0;
}