个人信息加解密程序

程序功能:个人重要信息如各种账号密码可以用文本文件存起来。如未加密,很容易造成个人信息泄露。本程序对文本信息文件进行加解密,未加密文件名为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;
}

上一篇:phpmyadmin更改用户名和密码


下一篇:Android Crash之Java Crash分析,androidflash插件