Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
阅读:2292回复:13

本人新手,问个加密长度的问题

楼主#
更多 发布于:2005-06-08 09:04
我修改的filemon的程序,但是发现只能加密小于64K的文件,我搜索了一下以前的帖子,说只要处理
if((Irp->Flags & (IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO)))
就可以了,但是我就是这么处理的啊,还是不能加密大于64K的文件
后面的文件是明文存储在磁盘上的。
请问这个问题应该怎么解决啊?????
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-08 09:12
补充一下,我用的加密算法就是简单的取反。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-06-08 10:08
对于大于64k的文件,设个断点跟踪一下,大于64k的部分,没有走到你加密的部分吗?
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-08 10:23
这个问题我遇到过,也是加密大于64K字节的文本文件,后面的文件内容就没有处理,后来在Write当中对需要处理的文件内容长度进行了调整,不管一次读写长度为多少,都将其分成n个512字节大小的数据块进行加解密,以后就搞定了,具体为什么对64K以后的数据没有加密,就没有去深究,我也想知道到底是什么原因?
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-06-08 10:29
现在的问题是我加密的文件很大(不止64K)的时候总是在末尾有一部分数据没有被加密和解密,我检测filemon发现好像是没有来得及加密,是不是我的加密算法比较慢的缘故啊????
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-08 10:44
to joshua_yu :
你是怎么把它分成n个512字节进行处理的啊?
我试过但是没有成功,是不是我处理的方法错误了啊?
tempbuf = WriteLength % 512;
if( tempbuf == 0 )
{ tempBuf = WriteLength/512;}
else
{ tempBuf = (WriteLength/512) +1;}
for(i =0;i < tempBuf; i++)
{
   for(j = 0; j< 512; j++)
   {
       Buf[j] = ~Buf[j];
   }
   Buf += 512
}
是不是我这里处理错误了啊》?
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-08 12:27
我说的就是64K以后的数据未加密的情况啊,跟你说的完全一样。

我以前用过单字节去反的加密方法,处理任意长度的文件都没有问题,而采用其它的加密算法的时候出现了你说的情况,后来将加密长度变为固定的512字节,才解决的问题,所以你的问题可能还不完全在于加密长度本身,再仔细的看看程序吧。下面是我用RC4算法进行的缓冲区处理:

#define FILE_BUFFER 512
int i;
int BlockLength;
unsigned char* BlockData = NULL;
int NumofBlock = len / FILE_BUFFER;
if((len % FILE_BUFFER) != 0)
NumofBlock++;

for(i = 0 ; i < NumofBlock; i++){
if(i == NumofBlock - 1)
BlockLength = len - i*FILE_BUFFER;
else
BlockLength = FILE_BUFFER;

BlockData = (unsigned char*)ExAllocatePool(NonPagedPool, BlockLength);

RtlZeroMemory(BlockData, BlockLength);
RtlCopyMemory(BlockData, &indata[i*FILE_BUFFER], BlockLength);

RC4_set_key(&key, keylen, keys);
RC4(&key, BlockLength, BlockData, BlockData);

RtlCopyMemory(&indata[i*FILE_BUFFER], BlockData, BlockLength);
ExFreePool(BlockData);
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-19 11:18
多谢各位大哥的回复,这个长度的问题解决了
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-06-20 11:26
那个大哥给个DES加密算法的源代码啊?
QQ:19789182
eMail:flyingbomb610@163.com
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-06-20 11:35
Hell_Fire_1981:
我上周回学校毕业答辩了。你现在做到什么程度了?
我看你用DES,是说你已经可以改变文件大小了???
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-06-20 15:54
下面是引用zhjie374于2005-06-20 11:35发表的:
Hell_Fire_1981:
我上周回学校毕业答辩了。你现在做到什么程度了?
我看你用DES,是说你已经可以改变文件大小了???

DES加密也是等长的
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-06-20 16:13
DES 加密会改变文件的程度吗???
我看之前VCMFC等老大的帖子不是说DES加密不会改变文件大小的啊!!

我现在做到磁盘级目录的加密和解密,但是还是有问题, 还没有成功呢。
(主要是应为DOC文档处理不成功!)。

对了你有DES加密的源代码吗???

给我传一份吧!嘿嘿

 
谢谢了
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-06-20 16:55
我也没呀。如果是等长的。我也可以考虑一下
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-06-21 15:35
DES是等长的,我的数据库的口令就是用DES 128加密的,当然是在ring3下作的,其实算法无所谓ring 0还是ring 3。而且DES算法网上满街都是,搜一下就可以了
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部