萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

123
返回列表 发新帖
楼主: Server

加解密一个文件

[复制链接]
发表于 2008-2-22 03:15 | 显示全部楼层
原帖由 corba 于 2008-2-22 00:33 发表
学info既不能自认为不是菜鸟,也请不要把其它人都当成傻瓜。

MD5相信学INFO的都知道,基本算法而已。是一种不可逆的编码算法,因此要“还原”出原始密码就只能用穷举法。使用公开的 MD5 算法模块,在P4-1.5G的机器 ...


ICPC的头衔??

我多说句废话,学INFO不能急噪,不能太功利.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
头像被屏蔽

TA的专栏

 楼主| 发表于 2008-2-22 11:13 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2008-2-22 15:04 | 显示全部楼层
对于生成的文件,用HEX编辑器,比如ultraedit,找到007A5DD偏移处,
把此处的 85 改成 84 保存
不用输入密码既可以打开
(附加信息   仅对于目前2008-2-22 10:13楼主更新的那个版本)
PS . 为啥这个版不能上传附件。$怒吼$



[ 本帖最后由 ☉☉ 于 2008-2-22 14:13 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
头像被屏蔽

TA的专栏

 楼主| 发表于 2008-2-22 16:45 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2008-2-23 02:28 | 显示全部楼层
仅对于楼上2008-2-22 15:45那个版本:

protector.exe 在81D02h字节偏移处 85 改 84 ,可以不用输入密码restore任何文件。

再来我可不玩了,disassembler不是好玩的。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2008-2-23 14:26 | 显示全部楼层
xue xiao you jia mi fang xiang de jiao shou he ke cheng, xia xue qi zhun bei xuan. suan zuo Math de Nebenfach.
da jia bu yao xiao hua lz. zhong guo xue shu huan jing bu hao zhi chu jiu shi Pin Ping duo yu Gu Li...
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2008-2-26 22:46 | 显示全部楼层
呵呵,能理解楼主,也支持楼主。每个人都有自己的经验积累过程。要不断的完善自己我们需要动力,而这种动力很多时候就来源于每一阶段的成就感。相信楼主当初发这个小软件也就是觉得自己做了一个挺实用的小软件。虽然在这里有大家的褒贬不一的评价,但楼主确实学到了很多东西,也有了更大的进步,这就是收获。我们自己常常回顾过去引以为自豪的东西,也会感觉到那时候的幼稚(呵呵,褒义哟)。 这说明我们进步了。不好意思,罗嗦了,因为觉得楼主的现在和以前的我很像。呵呵。
顺便给楼主一点我的建议,呵呵,我对加密不是很懂,只是随便说说。
既然楼主已经能够将用户密码通过MD5加密,那么用户密码大家是不可能从文件中看到了,就认为从生成文件的角度看,密码是安全的。就以这个密码为明文加密基础,楼主可以对文件按如下步骤加密:
1.将用户密码成为变量PASS_ORI, 生成后的MD5 成为PASS_MD5
2.二进制读取Source文件,每次读取用户密码长度个单位(Len(PASS_ORI)),放到一个变量里面,这里就叫ORI_CONTEXT. 一直到文件读取结束. 每读取一组后,对ORI_CONTEXT 和PASS_ORI进行XOR运算,依次写入新文件。呵呵,为什么要进行这个运算呢,其实这就是最简单的可还原运算.反正用户密码是基础, 用户密码不正确,也就不能正确还原。
3.还原的时候当然先根据用户输入的密码进行MD5运算,然后和PASS_MD5比较,如果正确,用这个用户密码再对秘文进行XOR运算。这样就可以得到原文了。当然我只说了基本原理,里面还有一些常规处理,比如字节长度等等,这个楼主可以自由发挥。
比方 用户的明文是ABC, 用户密码是 CDF
ABC XOR CDF = 密文
密文 XOR CDF = ABC XOR CDF XOR CDF = ABC

那么我们看一下这样做究竟如何保证安全性:
密码比对是通过与产生文件中的MD5比较的,假设别人更换了产生文件中的MD5码(通过二进制编辑器),那么可以绕过楼主的密码验证这一关。
绕过了这一关以后,因为对方依旧没有正确的密码,所以在进行XOR运算时,是不可能还原出原值的。恢复的文本也就不正确。

其实基于这个基础,楼主还可以用MD5对文件进行校对,防止用户恶意更改文件中的部分数据已达到欺骗的目的. 好像楼上有人这么做得。方法就是先按照上面方法产生加密文件,然后对全文件进行MD5加密得到文件校对码,由于这个校对码是定长度,可以将校对码插入文件中的一个位置,呵呵,不要放在最后,放在最后别人连校对码一起改了。这个位置可以由用户密码的某种运算来决定。反正这些都是自由发挥的拉。。。。

核心运算伪代码:
encrypt(source, destination, usrPass)
{
      destination.write(applicationInfo);
      PASS_MD5 = MD5_algo(usrPass);
      destination.write(PASSMD5);
      while (!source.end)
     {
             ORI_TEXT = source.read(Len(UsrPass));
             if (LEN(ORI_TEXT) < LEN(UsrPass))
             {
                    TempUsrPass = UsrPass.sub(0, LEN(ORI_TEXT);
             }
             else
             { TempUsrPass = UsrPass;}
           
             ENCRYPT_TEXT = ORI_TEXT XOR TempUsrPass
             destination.write(ENCRYPT_TEXT);
     }
}

解密的,还有校正的楼主自己写吧。
其实我个人觉得好的加密方法都是在知道加密算法的基础上还不能解密。完全依赖于密码。
呵呵,我就是突发奇想,可能有很多没考虑到,也许方法就是完全不对的。欢迎大家拍转。目的就是给楼主提供一些思考这个问题的方法而已。

[ 本帖最后由 lovely1234 于 2008-2-26 21:49 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
头像被屏蔽

TA的专栏

 楼主| 发表于 2008-3-11 15:09 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
头像被屏蔽

TA的专栏

 楼主| 发表于 2008-3-12 15:51 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-1 20:06 , Processed in 0.057298 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表