資源簡介
在 vc++6.0 上實(shí)現(xiàn)的文件加密解密程序注意沒有用mfc。
代碼片段和文件信息
#include?//輸入輸出函數(shù)
#include???
#include???//?標(biāo)準(zhǔn)庫函數(shù)
#include???//?字符串處理函數(shù)
#include???//?字符操作函數(shù)
#include???//?控制臺輸入輸出函數(shù),雖然不是標(biāo)準(zhǔn)頭文件,但是大部分編譯器都支持
/**
?*?在文件開頭聲明函數(shù)原型,將函數(shù)定義放在main()函數(shù)后面
?*?這是一個(gè)優(yōu)雅的編程習(xí)慣
**/
void?printMenu(void);
int?checkPwd(int?type);
int?encryptFile(char?*sourcefile?char?*secretKeychar?*targetFile);
char?redo(void);
/**
?*?password?被main()和checkPwd()兩個(gè)函數(shù)使用
?*?必須定義為全局變量,即在main()函數(shù)外部定義
**/
int??password=123456;??//?軟件初始密碼
int?main(){
/**
?*?不像?password?變量,下面這些變量只在main()函數(shù)內(nèi)部使用
?*?所以可以定義為局部變量,即定義在mian()函數(shù)內(nèi)部
**/
int?newpwd?newpwda;??//?更改密碼時(shí),用戶兩次輸入的新密碼
char?sourcefile[30]??//?加密/解密的文件名
targetFile[30]??//?解密/加密后要保存的文件名
secretKey[21]??//?文件加密的密鑰
action;?//?要進(jìn)行的操作
//?操作前先校驗(yàn)密碼
if(!checkPwd(1)){
????????cout<<“抱歉,3次輸入密碼錯(cuò)誤。按任意鍵退出程序...“;
getch();
exit(1);
}
//?密碼校驗(yàn)成功,顯示程序菜單,執(zhí)行各種操作
while(1){
system(“cls“);??//?清屏
printMenu();??//?顯示菜單
????????cin>>action;
fflush(stdin);??//?清空stdin緩沖區(qū)
system(“cls“);
switch(action){
//?退出系統(tǒng)
case?‘z‘:
exit(0);
break;
//?文件加密
case?‘a(chǎn)‘:
while(1){
????????????????????cout<<“輸入要加密的文件名(含路徑):\n“;
????????????????????cin>>sourcefile;
????????????????????cout<<“輸入密鑰:“;?//密鑰是用戶自己定義的,可以隨意給需要加密的文件添加密鑰
cin>>secretKey;
cout<<“加密后的文件名(含路徑):“;??//給加密后的文件命名,并保存
????????????????????cin>>targetFile;
if(?encryptFile(sourcefile?secretKey?targetFile)?){
????????????????????????cout<<“恭喜你,文件“< ????????????????????}
if(redo()?==?‘a(chǎn)‘){??//?繼續(xù)加密文件
system(“cls“);
}else{??//?回到主菜單
break;
}
}
break;
//?文件解密
case?‘b‘:
while(1){
????????????????????cout<<“輸入要解密的文件名(含路徑):“;
????????????????????cin>>sourcefile;
????????????????????cout<<“輸入密鑰:“;
????????????????????cin>>secretKey;
????????????????????cout<<“解密后的文件名(含路徑):“;//對解密的文件系統(tǒng)又可以提供保存路徑
????????????????????cin>>targetFile;
if(?encryptFile(sourcefile?secretKey?targetFile)?){
????????????????????????cout<<“恭喜你,文件“< }
if(redo()?==?‘a(chǎn)‘){??//?繼續(xù)解密文件
system(“cls“);
}else{
break;??//?回到主菜單
}
}
break;
//?修改密碼
case?‘c‘:
while(1){
if(!checkPwd(2)){
????????????????????????cout<<“抱歉,3次輸入密碼錯(cuò)誤。按任意鍵退出程序...“;
getch();
exit(0);
}
????????????????????cout<<“請輸入新密碼:“;
????????????????????cin>>newpwd;
????????????????????cout<<“請?jiān)俅屋斎胄旅艽a:“;
????????????????????cin>>newpwda;
if(newpwd==newpwda){??//?兩次輸入密碼相同才成功
password?=?newpwd;
????????????????????????cout<<“恭喜你,修改密碼成功!\n“;
}else{
????????????????????????cout<<“兩次輸入密碼不相同,修改失敗!\n“;
}
if(redo()?==?‘a(chǎn)‘){??//?繼續(xù)修
評論
共有 條評論