导航:首页 > 文件目录 > 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加密压缩文件相关的资料

热点内容
巴黎怪物动画电影 浏览:336
游戏的bin文件怎么打开 浏览:950
进销存表格的数据库在哪里 浏览:331
多少数据具有代表性 浏览:980
文件默认排序顺序是什么 浏览:931
叶子媚的十八禁电影 浏览:523
京东服务密码 浏览:809
怎么全部退出u盘的所有文件 浏览:891
名字四个字的韩国古装电影 浏览:401
宝马怎么重新编程 浏览:592
神马电影中文字母 浏览:635
科幻西游记电影系列 浏览:695
java将图片添加到word文档内 浏览:52
360浏览器哪个版本号 浏览:426
超大尺度的电影 浏览:348
删除指定路径包含a开头的文件夹 浏览:986
主角有只狗叫大黄 浏览:337
末世黑暗种马 浏览:512
我马上要去看电影了英文翻译 浏览:979
ppt文件数据恢复内容 浏览:241

友情链接