導航:首頁 > 文件目錄 > c加密壓縮文件

c加密壓縮文件

發布時間:2022-09-15 16:05:07

❶ 怎樣實現linux下c/c++對文件加密壓縮成zip文件

網上有封裝好的庫~好像是gzip 以前用過很好使的,可以解壓 也可以壓縮~

❷ 如何給文件加密

如果真的有什麼隱私不方便讓別人看,我有四種方法,安全、綠色、簡單。
方法1:將你的文件或文件夾隱藏,(右鍵點文件或文件夾的屬性,將屬性改為「隱藏」,再在控制面板里打開「文件夾選項」點「查看」按鈕在下面的框里選擇「不顯示隱藏的文件或文件夾」這樣文件就不見了);
方法2:將文件的擴展名(也就是文件名最後的幾個字母)隨便改一下就打不開了,文件夾需壓縮後更改,別人也不知道是啥格式的,自己要知道哦。可以和方法1同時使用。
方法3:把文件或文件夾壓縮成winrar的加密壓縮文件夾,步驟是,右鍵點擊要壓縮的文件->添加到壓縮文件->高級->設置密碼->然後輸入密碼後確定(其他選項為默認)
方法4:用記事本鎖住你的文件夾
* 認定一個你想鎖定的的文件夾例如D:\PICS
* 現在新建一個記事本輸入下面的內容:
ren pics pics.{21EC2020-3AEA-1069-A2DD-08002B30309D}
* 這里的pics是你的文件夾的名字。另存文本文件為「loc.bat」 在同一目錄內(重要哦!)。
* 打開另一個新的記事本文件輸入類似下面的內容:
ren pics.{21EC2020-3AEA-1069-A2DD-08002B30309D} pics
* 另存文本文件為「Key.bat 」在同一目錄內。(其實文本的文件名可隨意的,但擴展名必須是「.bat」)

用法:
* 鎖住文件夾:只要點擊loc.bat,它就會轉換到控制面板的圖標而無法使用。
* 解鎖文件夾:點擊key.bat文件,文件夾就會解鎖並可以操作啦~。 用壓縮加密:右擊要加密的文件夾>>添加到壓縮文件>>高級,然後就可以設置密碼了(記得刪除源文件) 另外還可以建一種空文件夾,其實裡面裝了你自己的東西,但別人看不到,就算把它刪了,你的文件還在,方法如下:假設建一個名為a的文件夾放在d盤.開始>>運行>>cmd>>d:>>md a..\>>打開d盤.建一個名為a的文件夾,將名為a.的文件夾隱藏(因為這兩個文件夾刪除一個另一個就無法刪除,無法打開)建這個文件夾是欺騙別人的,打開什麼也沒有.你可以這樣打開:開始>>運行>>d:\x..\打開後正常存放文件.別人沒法用常歸方法找到這些文件的.

還可以設置許可權。刪除其他用戶,只允許你用的用戶可以打開。 軟體加密 如果是WORD、EXCEL等單個文件,它本身就帶有加密功能的,WORD在 工具→選項→保存 裡面;EXCEL在保存對話框的常規選項裡面。

如果文件不多,你也可以復制到一個文件夾裡面,右鍵點擊文件夾→添加到壓縮文件→高級→設置密碼,壓縮完後把源文件夾刪除即可。

如果文件很多,建議你使用:

企業資料保密專家 v2.0 綠色版(內附註冊機)

軟體大小:700.98KB
軟體語言:簡體中文
軟體類別:綠色軟體/免費軟體
運行環境:Win9X/WinXP/Win2000/
軟體簡介:是一款專門針對本地硬碟、移動硬碟(或U盤)文件夾進行加密的軟體,軟體採用了獨到安全的加密演算法,解決了一直以來困擾著很多使用移動硬碟同時急需對U盤文件夾進行加密的用戶。其主要功能如下: (1)加快速移動加密:該方式對文件夾加密速度快、安全可靠性高,加密10G的資料僅需要不到3秒鍾。經過加密後的文件夾可以防止復制、拷貝和刪除,加密成功之後,會在該文件夾的根目錄下生成一個「解密.exe」文件,當你把移動硬碟或U盤拿到其他電腦上使用時,只需要運行這個「解密.exe」文件,輸入正確的密碼後即可進入該文件夾操作,操作完畢退出後文件夾會自動加密。 (2)強度壓縮加密:強度壓縮加密相對快速移動加密而言,最大的特點是可以把一個文件夾壓縮加密成一個EXE文件,只要把該可執行文件拷貝到其他電腦,運行後輸入正確的密碼即可解密,安全性極高,同時不受操作系統版本的限制,可移植性好。如果你把重要機密的文件發給朋友,可以使用本功能(提示:強度壓縮加密的弱點在於加密大於100M的文件夾速度慢一些,因此加密大文件夾建議使用快速移動加密)。加解密操作很簡單,和快速移動加密一樣,只要在以下窗口中選擇「強度壓縮加密」即可。 (3)硬碟加密和系統安全設置:該功能可以對硬碟進行鎖定保護,為你的電腦提供了雙保險,解了你後顧之憂。

初始密碼:123
內附註冊機

http://www9.piaodown.com/softk6/UPFK.rar 以上內容希望對您有所幫助

❸ 怎樣給C,D,E,F盤的文件夾加密

網路搜 文件夾大師 這個軟體做的很好 但是你隱藏文件的時候最好不要設置密碼 免得設了密碼自己忘記 資料丟了怪我啊

❹ 請問有什麼辦法可以破解加密的壓縮文件啊

估計您需要使用破解軟體了。

給文件加密,我使用的是文件夾加密超級大師。

文件夾加密超級大師的閃電和隱藏加密自帶的有密碼恢復功能,我建議您可以試試。

❺ 怎麼用C語言對文本進行加密壓縮

可以吧char型轉換成int型,這樣就會生成一連串的數字.
比如
char a='g';
(int)a

❻ c語言壓縮文本文件 求解答

#include"stdio.h"
#include"string.h"
#include"malloc.h"


#defineMOD_ADLER65521
#defineHASHMAX1000
#defineMAX_INT9999999//最大讀取數字為99999999
#defineCHARBUFLEN40960
#defineDECOMPRESSINITLEN1024

structstringInfo
{
intNo;//字元串出現的次序
char*str;//字元串
structstringInfo*next;//下一節點
}*strTable[HASHMAX];//用於壓縮
intisCompress;
char**strTableDe;//解壓縮表,用於解壓縮
longdeTableLen;//解壓縮表長度
longcurStrNum;//目前的字元串數量

//程序初始化
voidinit()
{
inti;
curStrNum=1;
isCompress=1;//壓縮模式,等於0時解壓縮
if(isCompress)
{
for(i=0;i<HASHMAX;i++)strTable[i]=NULL;
deTableLen=0;
strTableDe=NULL;
}
else
{
deTableLen=DECOMPRESSINITLEN;
strTableDe=(char**)malloc(deTableLen*sizeof(char*));
for(i=0;i<deTableLen;i++)strTableDe[i]=NULL;
}
}
//重新申請內存
voidReMallocDeTable()
{
deTableLen<<=1;
strTableDe=(char**)realloc(strTableDe,deTableLen*sizeof(char*));
}

//程序結束,釋放內存
voidover()
{
inti;
structstringInfo*pNext,*pDel;

for(i=0;i<HASHMAX;i++)
{
pNext=strTable[i];
while(pNext)
{
free(pNext->str);
pDel=pNext;
pNext=pNext->next;
free(pDel);
}
}
if(strTableDe)
{
for(i=0;i<curStrNum;i++)
{
//printf("%d %s ",i,strTableDe[i]);
free(strTableDe[i]);
}
free(strTableDe);
}
}

//adler32校驗和演算法
unsignedlongadler32(unsignedchar*data,size_tlen)
{
unsignedlonga=1,b=0;
size_tindex;

for(index=0;index<len;++index)
{
a=(a+data[index])%MOD_ADLER;
b=(b+a)%MOD_ADLER;
}
return(b<<16)|a;
}

//求字元串的Hash,實現快速查找,這里用的是adler32演算法,可以使用其它任何hash方法
unsignedlongHash(constchar*str)
{
returnadler32((unsignedchar*)str,strlen(str))%HASHMAX;
}

//復制新字元串
char*NewStr(constchar*str)
{
char*r=(char*)malloc(strlen(str)+1);
strcpy(r,str);
returnr;
}

//取得字元串出現的次序
intgetStrPos(constchar*str)
{
unsignedlonghash;
structstringInfo*pFirst,*pNext,*pNew;

hash=Hash(str);
pNext=pFirst=strTable[hash];
while(pNext)
{
if(strcmp(pNext->str,str)==0)returnpNext->No;
pNext=pNext->next;
}

//沒有找到匹配的字元串
pNew=(structstringInfo*)malloc(sizeof(structstringInfo));
pNew->next=NULL;
pNew->No=curStrNum++;
pNew->str=NewStr(str);
if(pFirst==NULL)strTable[hash]=pNew;
else
{
pNext=pFirst;
while(pNext->next)pNext=pNext->next;
pNext->next=pNew;
}
return-1;
}

//讀取字元串,字元串以空格為結束符
//返回負數的絕對值是讀取的是字元串長度,正數為讀取的數字
intReadStr(char*out,constchar*in)
{
char*po,*pn;
constchar*pi;
intr;

po=out;
pi=in;
while(('a'<=*pi&&*pi<='z')||('A'<=*pi&&*pi<='Z')||('0'<=*pi&&*pi<='9'))
*po++=*pi++;//只復制大小寫字母和數字
*po=0;

//試著轉化為純數字
r=0;
pn=out;
while('0'<=*pn&&*pn<='9')
{
if(r>MAX_INT)break;
r*=10;
r+=*pn++-'0';
}
if(*pn)returnout-po;//未成功轉化為數字
elsereturn(r&0x7FFFFFF)|(((po-out)&0xF)<<27);
}

voidmain()
{
charreadFileBuf[CHARBUFLEN],readStrBuf[CHARBUFLEN];
char*prfb;
intnum;
FILE*fpr,*fpw;

fpr=fopen("source.txt","r");//輸入文件
fpw=fopen("object.txt","w");//輸出文件


if(fpr==NULL||fpw==NULL)return;

init();
while(!feof(fpr))
{
if(fgets(readFileBuf,CHARBUFLEN-1,fpr)==NULL)break;
prfb=readFileBuf;
while(*prfb)
{
num=ReadStr(readStrBuf,prfb);
if(num==0)fputc(*prfb++,fpw);//沒有讀取成功
elseif(num>0)//讀入數字
{
prfb+=(num>>27)&0xF;//移動讀取的位數
if(isCompress)fprintf(fpw,"0%d",num&0x7FFFFFF);//壓縮模式寫入數字,前面添加個數字0
else
{
num&=0x7FFFFFF;
if(num==0)//如果讀到數字0
{
prfb+=1;
num=ReadStr(readStrBuf,prfb);//讀取下一格數據串
if(num>0)
{
prfb+=(num>>27)&0xF;//移動讀取的位數
fprintf(fpw,"%d",num&0x7FFFFFF);
}
elsefprintf(fpw,"0",num&0x7FFFFFF);//下一個不是數字
}
elseif(num<curStrNum)fprintf(fpw,"%s",strTableDe[num]);//解壓模式寫入字元串
else
{
printf("Error:%d,%d ",num,curStrNum);
fprintf(fpw,"%d",num);//num大於已知的字元串數量,寫入數字
}
}
}
else
{
num=-num;
prfb+=num;//移動讀取的位數
if(isCompress)
{
num=getStrPos(readStrBuf);
if(num<0)fprintf(fpw,"%s",readStrBuf);//未出現過的字元串
elsefprintf(fpw,"%d",num);//寫入位置
}
else
{
fprintf(fpw,"%s",readStrBuf);
if(curStrNum>=deTableLen)ReMallocDeTable();//解壓表長度不夠,重新申請空間
strTableDe[curStrNum++]=NewStr(readStrBuf);//加入解壓表
}
}
}
}
if(isCompress)printf("Compresssuccessful! ");
elseprintf("DecompressSuccessful! ");
over();
}

❼ 如何為自己的壓縮文件加密

壓縮包文時候設置下密碼就可以了。

❽ 如何用C語言編寫暴力破解壓縮文件解壓密碼的程序

由於有一個重要的Rar文件,極需解開,首先試用了ARPC,但是解壓的速度極慢,每秒只有30個左右,所以斷了窮舉破解的念頭,卻仍不死心,因為我從不崇尚窮舉破解的方法,除非每秒可以跑幾千萬次的,我或許可以一試,所以決定研究一下Winrar3.x密碼演算法,以期是否可以破解該密碼。查看了網路上的資料,包括看雪FAQ里的回答,都聲稱只能用窮舉法破解,起先並不理解,但通過研究,我理解了看雪前輩們在FAQ里所說的原因,不禁讓我佩服

Winrar加密思路的成熟。雖然研究的結果沒有什麼新意,但我還是決定把我的研究結果與大家一起分享,為那些仍然以為winrar密碼可以象破解注冊碼一樣的,通過修改winrar彈出框之類的更改文件流程指向可以達到跳過密碼檢驗的朋友,做一個簡要的說明。

一、Rar文件生成的流程。
Winrar加密文件時,總的分兩個步驟:
1:先把源文件壓縮,壓成一段數據段。
2:再將壓縮完的數據段加密。
對於同一個源文件來說,不進行加密,壓縮完,其rar文件中的數據段是一模一樣的。但是如果對同一個源文件來說,即使使用同一個密碼,加密完rar文件中的數據段是不一樣的,這是由於加密的密鑰是依賴於一個Salt(8個位元組的密鑰,用來加密時使用,存放在rar文件頭中里)
所以要解密rar加密文件關鍵在於數據解密這一步,那我們接下來研究一下如何加密的。
二、加密「壓縮完的數據段」的流程
1、獲取密鑰:
將明文的密碼與Salt一起,通過HASH演算法,生成兩個16位元組的密鑰。(一個是KEY(AES演算法的參數),一個是initVector)
2、以Key和initVector來加密壓縮數據:
這里,是一個循環加密的結構,每16位元組作為一個塊,進行加密(這可能正是為什麼加密完的文件長度總為16倍數的原因)。加密採用AES演算法(RAR採用的是AES的rijndael的標准應用)。這里注意:AES加密前,有一個異或運算,是先將每16位元組塊與上一個16位元組塊加密結果進行異或,然後再進行AES演算法的。我用一個簡單的示意代碼看說明:
;===============================================
packblock[0]=packblock[i]^initVector
encryptBlock[0]=AES(packblock[0]) ;(KEY為AES的密鑰)
for i=1to 塊數量-1
packblock[i]=packblock[i]^encryptBlock[i-1]
encryptBlock[i]=AES(packblock[i]);(KEY為AES的密鑰)
next
;packblock[i]表示壓縮完的每16位元組數據
;encryptBlock[i]表示加密完的每16位元組數據
;===============================================
三、解密的過程
由於AES演算法是對稱的,所以解密的過程,是加密過程的逆運算。但解密時AES演算法過程與加密所用的不一樣(是因為解密過程中由KEY生成的子密鑰表不一樣)。仍然需要我們將密碼輸入,與salt一起生成兩個16位元組密鑰,KEY和initVector。

;===============================================
packblock[0]=AES1(encryptBlock[0]) ;(KEY為AES的密鑰)
packblock[0]=packblock[i]^initVector
for i=1to 塊數量-1
packblock[i]=AES1(encryptBlock[i]) ;(KEY為AES的密鑰)
packblock[i]=packblock[i]^encryptBlock[i-1]

next
;===============================================
那判斷密碼是否正確的在什麼地方呢?
解密的過程是解密後的數據塊進行解壓縮,然後解成源文件,對該文件進行CRC校驗,存在RAR文件中的源文件CRC校驗碼比較,相同則密碼正確,不相同則密碼錯誤。

四、無法秒破的原因
從上面,我們了解了RAR文件的整體思路。地球人都知道,解密時,肯定有個步驟是來判斷密碼的正確與否。而且,依據以往的經驗,我們也許可以將某些判斷的點移動,那樣可以縮減破解的流程思路。那RAR的這一步在哪裡?它把校驗放在了最後的一步。如果要秒破,我們該怎麼做泥?至少我認為目前是不可能的。
我們從解密過程逆反過來看看:
1、CRC檢驗這一塊修改跳轉?根本毫無意義,因為它已經是最後一步了。你可以修改RAR文件頭的CRC值,你可以將它改得和你用任意密碼解壓出來的文件CRC值一樣,但你的文件根本就不是原來的文件了。可能已經完全面目全非了。所以,對這一過程不可行。CRC校驗本身是不可逆的
2、那麼把判斷提前到壓縮完的數據?
解壓的時候,有沒有什麼來判斷壓縮數據是否正確?壓縮完的數據,有沒有固定的特徵,是否可以做為解壓的判斷,在這一步里,我們也無法找到有效的可用的固定特徵。因為這一步涉及到RAR的壓縮演算法。即使一個源文件,即使你的文件前一部分是完全相同的,只對後面的部分進行改過,那麼壓縮完,數據也是完全一樣的。因為壓縮完的數據首先是一個壓縮表,後面是編碼。文件不一樣,掃描完的壓縮表也不一樣,編碼又是依賴於壓縮表,所以,這里頭找不到壓縮完的數據有任何的固定特徵可以用來判斷的。
不管壓縮數據是什麼樣的,Winrar都一如既往地進行解壓,沒有進行壓縮數據是否有效的判斷。
3、那假如我們破解了AES了泥?
由於AES只依賴於KEY,如果AES演算法被破解了,我們知道了KEY,我們可以解出壓縮完的數據,但是這里有一個問題,還有一個initVector密鑰,用來第一個16位元組塊的異或,你沒有initVector參數,你第一個16位元組塊的數據便無法解得出來。
4、那就只能從第一步Hash的演算法入手
即使你能破解hash,但hash後的結果泥?沒有結果,你怎麼返推密碼。

所以綜上,我發現rar的加密是由hash和AES兩種演算法互相牽制,而兩種演算法當前都無法破解,至少目前還沒有辦法秒破,也理解了看雪高手講的道理。
五、對窮舉提高演算法效率的一些設想。
我用匯編寫完了RAR窮舉解密的演算法模塊,但是如何提高效率,優化窮舉的速度泥?我有如下的想法:
1、從壓縮數據里找尋特徵,省掉解壓縮、CRC檢驗代碼和生成initVector生成代碼。目前,通過多次實驗,我找到的一個特徵(不知道這個是否正確),即解密完的最後一個16位元組塊的最後一個位元組必須為0。因為經過多次的試驗,我發現有加密的數據段長度都會比未加密前的數據長,那麼,最後一個

16個位元組的數據塊解密完,多出的部分就都為0,但多出幾個位元組泥?多次實驗,長度不一,我試想著從加密數據段最後一個16個位元組塊著手,只解這一塊,看是否一個位元組為0,這樣,只解密16個位元組的數據,來大大提高效率?如果能進行到這一步了,再通過解全部數據,進行CRC校驗的判斷。
2、如果第一個特徵不成立的話,針對特定格式的壓縮文件,比如doc、jpg等,部分數據固定,壓縮完的數據是否存在相互牽制的數據?從而把判斷提前,這一步,我不知道如何找到壓縮完的數據是否存在相互牽制的數據。

❾ c語言怎樣以二進制的形式打開一個文件 不是以文本方式打開 是二進制 我想對這個文件進行加密壓縮

fopen("filename.txt","rb");就可以了,第二個參數里的b,就是以二進制的形式打開一個文件

閱讀全文

與c加密壓縮文件相關的資料

熱點內容
word文件管理器 瀏覽:82
貴安大數據產業園 瀏覽:229
excel該文件可能是只讀的 瀏覽:818
怎麼添加一個次要數據文件資料庫 瀏覽:399
linux怎麼裝系統 瀏覽:811
接觸到哪些信息是由資料庫管理 瀏覽:25
港版s7edge和亞太版本 瀏覽:284
無限循環數控編程序怎麼編程 瀏覽:979
iphone6splus16g 瀏覽:225
oppo如何開4g網路 瀏覽:267
java不安全 瀏覽:423
導入配置文件數據失敗 瀏覽:941
linux運行class 瀏覽:227
如何做好群管理員文件 瀏覽:979
linuxvim循環搜索文件 瀏覽:147
為什麼講女孩子更應該學習編程 瀏覽:742
雲數據備份不了了是怎麼回事 瀏覽:110
數據說話的股票有哪些股 瀏覽:612
一加照片保存在哪個文件夾 瀏覽:710
聯通省公司大數據 瀏覽:300

友情鏈接