【发布时间】:2010-12-22 09:41:12
【问题描述】:
我在 java 中有一个方法,它根据多个参数生成一个串行代码。
现在我想要另一种方法,它接受相同的参数+序列号,并告诉我这个序列号是否正确。但是,我不想暴露串行代码的创建方法,所以如果有人知道检查正确性的方法,他应该无法根据其他一些参数构造新代码。
这可能吗?
一些额外的重要信息。我无法更改生成串行代码的方法。否则我可以使用一些标准的公私钥算法。我想要的是:
methodICannotChange("someinput") returns serialcode
methodICanInvent(serialcode, "someinput") returns true or false
如果知道 methodICanInvent 的实现,“不可能”生成新的序列码。
【问题讨论】:
-
谢谢。我认为这里的第一个答案可能非常有用,尽管它并不完全是我所希望的......
-
在给定的约束条件下,这个问题基本上是无法解决的。假设串行代码生成算法可以生成任何长度为 12 个字符的可打印 ASCII 代码,其中 ASCII 值的总和是 256 的倍数。任何检查代码都将拒绝有效代码、接受无效代码或显示您的算法。