c加密压缩文件|怎样实现linux下c/c++对文件加密压缩成zip文件

c加密压缩文件|怎样实现linux下c/c++对文件加密压缩成zip文件的第1张示图

❶ 怎样实现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#defineDECOMPRESSINITLEN1024structstringInfo{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);//压缩模式写入数字,前面添加个数字0else{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]^initVectorfor 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加密压缩文件|怎样实现linux下c/c++对文件加密压缩成zip文件

赞 (0)