用C++做一個(gè)文件加密器-創(chuàng)新互聯(lián)

有的時(shí)候,我們寫了一些文檔,或者下載了一些秘密文件,卻不想讓別人看到。

成都創(chuàng)新互聯(lián)公司是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)頁設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價(jià)比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺(tái)等全方位的服務(wù)。

如果別人偏要看,這下怎么辦?!決不能“涼拌”!

這時(shí)候,我們就可以做一個(gè)文件加密器!這下別人就看不到了。嘿嘿嘿……

今天,我就教大家用C++做一個(gè)簡單的文件加密器,而且加密效果還非常好!還可以把加密后的文件反過來解密。(看之前要干什么不用我多說,點(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<< "請輸入加密(或解密)的文件路徑:";
        getline(cin, s);
        
        incode(s);
        outcode(s);
        
        cout<< "加密(或解密)完畢!"<< endl<< endl;
        codestr.clear();   //清空
	}
    return 0;
}

獲取文件信息后,該怎么加密呢?

這里給大家推薦一個(gè)既簡單,又好用的方法——取反加密。

具體的原理是:把字符串的每一位字符(char)所對應(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;
}

我們的文件加密器就這樣做好了!代碼大概長這樣:

#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<< "請輸入加密(或解密)的文件路徑:";
        getline(cin, s);
        incode(s);
        outcode(s);
        cout<< "加密(或解密)完畢!"<< endl<< endl;
        codestr.clear();
	}
    return 0;
}

運(yùn)行一下看看效果:

我相信是個(gè)人都看不出來加密后的文件原來長什么樣。效果是不是非常好?

今天就分享到這里了!記得點(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://bm7419.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)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)