1
2
我觉得你很困惑,例如,如果你使用luhn算法,它会返回 真 或 假 在校验和上。您给出的示例代码似乎表明您想要一些校验和结果(例如12345),可以从两个不同的值散列。这个问题将更加困难。 第三方将如何创造这种价值?你会给他们一些JavaScript代码让他们执行,还是其他语言?你不能有一个共享的密钥,他们可以用这个密钥对称地加密这个值,你可以让他们在加密的部分前面加上一些已知的值,这样你就可以快速地验证它了。 他们的代码:
您的代码:
|
2
1
好的,所以您不希望在另一个应用程序和您的应用程序之间进行交互。您希望将代码限制为6个字符。以下是我的想法:
|
3
1
为什么是“校验和”?第三方不能运行你给他们的任何小实用程序吗?您所需要的只是一个5位加密机,第三方可以在其计算机上运行,将产品代码输入,并将5位结果作为密钥代码发送给客户机。 加密程序总是从相同的输入中产生相同的结果。 然后,客户机向您发送产品代码和密钥代码。您通过该加密程序的精确副本运行产品代码,并将结果与密钥代码进行比较。 该系统的安全性可以在不改变基础架构的情况下得到增强。 - Al。 |
4
1
澄清后编辑 : 我仍然认为产品代码和匹配的第三方响应不能是恒定的-否则它可以被其他用户共享,从而能够在不访问第三方的情况下给出响应代码。 如果产品代码是常量,则可能的方法是第三方响应取决于 二者都 代码和用户的电话号码,以及您的验证。这样,每个响应都是特定于产品和用户的。 在我看来,luhn算法的具体排列并不太重要——如果有人能破解一个变体,他可能就能破解另一个变体。 原始答案 : 简而言之,我认为你可以使用luhn算法,如果你给用户一张一次性的票,有效期有限。
|
5
0
经过与三方公司的长期争论,我们得出的结论是,最好的解决方案是,如果他们把客户的短信息传递给我,我会生成一个新的代码并将其发送给他们,然后他们会用我生成的代码向客户发送一个新的短信息。从我的角度来看不是最佳的,但至少我现在可以用我想要的任何方式来做。 谢谢你的投入。 |