请教一个关于有时效性的加密的问题.

eplang 2007-11-23 11:04:03
最近突发奇想,想做一个能对文档进行加密解密的东西.

加密和解密这方面比较好说.
但我想做一个类似于这样的功能出来.

打个比方,我对一个文本文档进行了加密的操作,为其设置了一个密码,别人如果需要打开该文档,则必需有相应的密码才可.如否,则只会得到一个全是乱码的文档.
这个我自己应该能解决.

但我想实现这样的一个功能,这个密码他是有时效性的,也就是说,在一定的时间段内,他可以使用他所获得的密码来打开浏览该文档.
但过了这个有效期之后,比如说几个小时或是几天这样子,这个密码就失效了.
本来的想法是在加密的时候,记录下进行加密时那台电脑的本地时间,将获得的时间做一定的处理后做为密码的一部分.
而在解密的时候,则获取解密时那台电脑的时间,与从密码中获取的时间做一个匹配验证,而决定他该密码是否已经超过了所预设的有效期限.

这个应该能初步解决该问题,但其它的问题也就出来了,打个比方,我在2007年11月23日18:00:00这个时候,为一个文件进行了加密的处理,于是,这个时间被经过处理后做为密码的一部分了.
现在比方说我为这个密码预设了他的有效期为一天,那么,按照本来的想法,我在24日18时过后,我应该是打不开该文件,但由于我的时间是通过本地计算机来获取的,别人可以通过更改本地计算机时间来打开原本已经打不开的文件.
由于有可能打开该文档的计算机没有网络连接,所以想通过获得网络上的时间来进行验证也不大可能.

这个问题想得我头都大了.现在只能求助于诸位,有没有什么样的解决方法.不局限于何种语言.
...全文
479 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vlinux 2008-01-19
  • 打赏
  • 举报
回复
如果写入到隐蔽地点,这样稍微反汇编一下就破解了。
我有个恶心的办法,

1.给你的文档
第一行加上一个自己设置的字符串,比如说:HTML=HowToMakeLove

2.利用起始日期(精确到秒还是小时自己看情况处理,这里假设是24小时内,精确到小时)给你的文档做一个加密,这样就把时间大摇大摆的保存在最隐蔽的地方了,呵呵。

3.从当前日期向前穷举24次(假设是24小时内),用穷举出来的时间解密文档的第一行,如果成功解密出约定的字符串,那么就成功获取了起始时间。这个时候再用起始时间和当前日期进行判断是否符合24个小时之内即可。

4.为了防止自己设置的字符串被修改,可以用程序对文档进行一个公开的公钥加密,这样程序每次打开文档的时候就用私钥进行解密(程序自己完成)。

恩恩,自己刚刚想的,看看有什么逻辑上的漏洞没
老紫竹 2008-01-19
  • 打赏
  • 举报
回复
1 对于单机版,他就是不上网,你没有办法检测当前时间的。
2 可参考1楼的做法,你在程序里面每隔一段时间记录一次当前时间,写到XXXX个隐蔽地点,具体写哪你自己考虑喽,我就不方便说了。
3 下次登陆,检测上次时间是否晚于当前时间,如果是,有人该了机器时间了,拒绝使用,让用户先调整机器时间再用。

euroman 2008-01-19
  • 打赏
  • 举报
回复
由于你需要的是一个对于文件来说要求是绝对时间, 所以只能通过网络解决,从某时间服务器上获取时间,这个要求是连接网络的。

问题关键在于解决时间的相对性上。
timbear 2007-12-08
  • 打赏
  • 举报
回复
用本机文件做对比,找TEMP目录文件事件做对比!
tanlingyun 2007-12-07
  • 打赏
  • 举报
回复
你是不可以自己设计一个计时器呢,他打开文档的第一次启动这个计时器
joejoe1991 2007-12-07
  • 打赏
  • 举报
回复
你是不可以自己设计一个计时器呢,他打开文档的第一次启动这个计时器
==========================================================
你的计时器不可能一直开着啊。
学习一下看看谁有好的办法
seaforce 2007-12-07
  • 打赏
  • 举报
回复
关注一下,,,
zhb_821012 2007-12-05
  • 打赏
  • 举报
回复
这个没办法吧
楼上的倒是能解决一种情况
但还是解决不了根本问题
再想想得
hbwhwang 2007-11-24
  • 打赏
  • 举报
回复
不好办啊!
有个不太好的办法:每次访问记录下访问时间,如果下次访问时间比前次早,证明有人改时间作弊。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧