• 大小: 7KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: c语言  

资源简介

在 vc++6.0 上实现的文件加密解密程序注意没有用mfc。

资源截图

代码片段和文件信息

#include //输入输出函数
#include   
#include   // 标准库函数
#include   // 字符串处理函数
#include   // 字符操作函数
#include   // 控制台输入输出函数,虽然不是标准头文件,但是大部分编译器都支持

/**
 * 在文件开头声明函数原型,将函数定义放在main()函数后面
 * 这是一个优雅的编程习惯
**/
void printMenu(void);
int checkPwd(int type);
int encryptFile(char *sourcefile char *secretKeychar *targetFile);
char redo(void);

/**
 * password 被main()和checkPwd()两个函数使用
 * 必须定义为全局变量,即在main()函数外部定义
**/
int  password=123456;  // 软件初始密码

int main(){
/**
 * 不像 password 变量,下面这些变量只在main()函数内部使用
 * 所以可以定义为局部变量,即定义在mian()函数内部
**/
int newpwd newpwda;  // 更改密码时,用户两次输入的新密码
char sourcefile[30]  // 加密/解密的文件名
targetFile[30]  // 解密/加密后要保存的文件名
secretKey[21]  // 文件加密的密钥
action; // 要进行的操作

// 操作前先校验密码
if(!checkPwd(1)){
        cout<<“抱歉,3次输入密码错误。按任意键退出程序...“;
getch();
exit(1);
}

// 密码校验成功,显示程序菜单,执行各种操作
while(1){
system(“cls“);  // 清屏
printMenu();  // 显示菜单
        cin>>action;
fflush(stdin);  // 清空stdin缓冲区
system(“cls“);

switch(action){
// 退出系统
case ‘z‘:
exit(0);
break;

// 文件加密
case ‘a‘:
while(1){
                    cout<<“输入要加密的文件名(含路径):\n“;
                    cin>>sourcefile;
                    cout<<“输入密钥:“; //密钥是用户自己定义的,可以随意给需要加密的文件添加密钥
cin>>secretKey;
cout<<“加密后的文件名(含路径):“;  //给加密后的文件命名,并保存
                    cin>>targetFile;
if( encryptFile(sourcefile secretKey targetFile) ){
                        cout<<“恭喜你,文件“<                    }

if(redo() == ‘a‘){  // 继续加密文件
system(“cls“);
}else{  // 回到主菜单
break;
}
}
break;

// 文件解密
case ‘b‘:
while(1){
                    cout<<“输入要解密的文件名(含路径):“;
                    cin>>sourcefile;
                    cout<<“输入密钥:“;
                    cin>>secretKey;
                    cout<<“解密后的文件名(含路径):“;//对解密的文件系统又可以提供保存路径
                    cin>>targetFile;
if( encryptFile(sourcefile secretKey targetFile) ){
                        cout<<“恭喜你,文件“< }
if(redo() == ‘a‘){  // 继续解密文件
system(“cls“);
}else{
break;  // 回到主菜单
}
}
break;

// 修改密码
case ‘c‘:
while(1){
if(!checkPwd(2)){
                        cout<<“抱歉,3次输入密码错误。按任意键退出程序...“;
getch();
exit(0);
}

                    cout<<“请输入新密码:“;
                    cin>>newpwd;
                    cout<<“请再次输入新密码:“;
                    cin>>newpwda;
if(newpwd==newpwda){  // 两次输入密码相同才成功
password = newpwd;
                        cout<<“恭喜你,修改密码成功!\n“;
}else{
                        cout<<“两次输入密码不相同,修改失败!\n“;
}

if(redo() == ‘a‘){  // 继续修

评论

共有 条评论