2013-02-15 26 views
0

有一个软件安装程序,我需要在我们的办公室定期使用我们的文档管理系统,需要安装程序的代码才能继续。代码似乎是日期特定的。当前日期到数字代码算法逆转

我想知道是否有人有数学可能有如何解决方法用于生成代码的想法,所以我不必打电话给他们的帮助台,并等待2-3小时只为6位字符串。

今天的代码(15/02/2013)是836959. 还有一天的代码(2013年6月2日)是450001.

这里是否有任何关系,还是可以逆向工程?

+0

您必须付费以获取代码吗? – amdn 2013-02-15 00:49:05

+0

不,这只是他们最近建立的,因为他们不希望将软件安装在不兼容的PC或基本PC“专家”重新分配它。我永远在推出新的工作站并重建感染病毒的工作站,所以每次我去安装这个软件(其许可证都由并发登录用户计算,而不是每次安装),我必须暂停工作几个小时而我等他们回电话给我。 – 2013-02-15 01:16:23

+0

每天的代码都是随机生成的5位数字字符串......但我怀疑它。安装程序是本地安装程序,与他们需要与之通信以验证“随机”代码的服务器无关。在当前日期和安装程序/卸载程序使用的日常代码之间必须有一些数学关系......我只是不擅长数学。 – 2013-02-15 01:20:48

回答

0

这不是一个严格的数学问题,它是一个密码问题,函数可能是一个cryptographic hash function ......从数学的角度来看,如果密钥的位数是固定的,那么这可能是一个Surjective function意思是一个将日期映射到键的功能,可能有多个日期映射到同一个键。有了两个数据点,甚至很难猜测这个函数可能是什么,除非它是微不足道的......你拥有的点越多,你就会越有信心找到他们使用的“函数”,但你永远不会确定。唯一可以肯定的方式是反汇编二进制文件,许可协议可能会阻止您执行该文件。