有的時(shí)候,我們寫了一些文檔,或者下載了一些秘密文件,卻不想讓別人看到。
如果別人偏要看,這下怎么辦?!決不能“涼拌”!
這時(shí)候,我們就可以做一個(gè)文件加密器!這下別人就看不到了。嘿嘿嘿……
今天,我就教大家用C++做一個(gè)簡(jiǎn)單的文件加密器,而且加密效果還非常好!還可以把加密后的文件反過來解密。(看之前要干什么不用我多說,點(diǎn)贊+關(guān)注)
首先,一個(gè)文件加密器要有讀取文件和保存文件的功能。代碼如下:
#include//導(dǎo)入萬能頭文件
using namespace std;
vectorcodestr; //用來存放讀取的信息
void incode(string inpath){ //讀取文件函數(shù)
ifstream in(inpath); //用讀的方式打開文件
string tmp;
while (getline(in, tmp)){
codestr.push_back(tmp);
}
in.close(); //關(guān)閉文件流
}
void outcode(string outpath){ //輸出文件函數(shù)
ofstream out(outpath); //用寫的方式打開文件
out.clear(); //清空文件
//代碼
out.close(); //關(guān)閉文件流
}
int main(){
string s;
while (1){
cout<< "請(qǐng)輸入加密(或解密)的文件路徑:";
getline(cin, s);
incode(s);
outcode(s);
cout<< "加密(或解密)完畢!"<< endl<< endl;
codestr.clear(); //清空
}
return 0;
}
獲取文件信息后,該怎么加密呢?
這里給大家推薦一個(gè)既簡(jiǎn)單,又好用的方法——取反加密。
具體的原理是:把字符串的每一位字符(char)所對(duì)應(yīng)的ASCII碼值取反,在把得到的值轉(zhuǎn)換為字符,保存下來。
代碼如下:
for (int i = 0; i< codestr.size(); ++i){
//遍歷字符串的每一位字符
for (int j = 0; j< codestr[i].size(); ++j){
out<< (char)~codestr[i][j]; //取反,并輸出取反后的字符
}
out<< endl;
}
我們的文件加密器就這樣做好了!代碼大概長(zhǎng)這樣:
#includeusing namespace std;
vectorcodestr;
void incode(string inpath){
ifstream in(inpath);
string tmp;
while (getline(in, tmp)){
codestr.push_back(tmp);
}
in.close();
}
void outcode(string outpath){
ofstream out(outpath);
out.clear();
for (int i = 0; i< codestr.size(); ++i){
for (int j = 0; j< codestr[i].size(); ++j){
out<< (char)~codestr[i][j];
}
out<< endl;
}
out.close();
}
int main(){
string s;
while (1){
cout<< "請(qǐng)輸入加密(或解密)的文件路徑:";
getline(cin, s);
incode(s);
outcode(s);
cout<< "加密(或解密)完畢!"<< endl<< endl;
codestr.clear();
}
return 0;
}
運(yùn)行一下看看效果:
我相信是個(gè)人都看不出來加密后的文件原來長(zhǎng)什么樣。效果是不是非常好?
今天就分享到這里了!記得點(diǎn)贊+關(guān)注!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:用C++做一個(gè)文件加密器-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article14/dpocde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站改版、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、App開發(fā)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容