CFile--以二進制的方式讀取加密後的圖片文件,並且給讀取的數據增加頭數據、尾數據,簡稱簡單解密操作

上一個文章中,已經簡單的介紹了,如何進行簡單的加密操作。

這篇文章主要是說如何對上一個生成的文件進行解密

以上圖片就是一個簡單的加密、解密的邏輯思路。文字寫的有些醜,湊合看哈。主要是看思想  -_-

解密就是將新生成的文件還原加密的操作

打開、讀取文件

FILE  *p = fopen(chGenerate , "rb");
if (p == nullptr)
{
    AfxMessageBox(_T("文件打開失敗!"));
}
	
int nlength = _filelength(_fileno(p));
nFileLen = nlength;
unsigned char* a = new unsigned char[nlength];
	
fread(a, sizeof(unsigned char) , nlength , p);

文件打開、讀取簡單,上一篇中已經介紹了,再次我只是貼出代碼。

判斷第一位和最後一位是不是自己設置的內容

bool  bOK = false;
if ((a[0] == 0x88) &&(a[nlength-1] == 0x88))
{
    bOK = true;
}
else
    bOK = false;

當bOK == true時,說明是自己加密過的文件。

此時,將解密後的內容存到新的文件中。

在這裏,有個需要注意的是,因爲頭數據是自己加的,尾數據也是自己增加的。想要取到源數據時,需要去除這兩部分數據

FILE *q;
q = fopen(chGenerate_temp , "wb");
fwrite(a+1, sizeof(unsigned char) ,nlength-1 , q);
fclose(p);

最後將申請的資源進行釋放就可以了

fclose(q);
delete []a;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章