如果你以前读过这个帖子——忘记我写的一切,我写它的时候一定是喝醉了。我重新开始:
我目前正在做一个项目,我们将使用某种算法来验证用户输入。需要考虑三个方面;
客户 - 浏览我们的网页
公司 - 我们,处理客户的请求
第 3 方公司 - 处理客户消息
在我们的网页上,我们将向客户展示有关产品的一些信息。如果他/她想了解有关产品的更多信息,他必须联系第 3 方公司并说明产品代码(本身不是唯一的,但也不常见)。作为回报,客户将收到来自第三方公司的一些其他代码,他应该在我们的网页上输入这些代码,我们将在其中验证代码以供批准。
如果我们公司与第三方公司没有任何互动,那就最好不过了。纯加密是不可能的,因为它会生成一个太长的字符串。我们通过 SMS 进行此操作,因此代码必须简短。
到目前为止我想出了什么:
对于每件产品,我都会在 base 16 (0-f) 中生成一个有点独特的代码(它是否唯一并不重要)。想要了解有关产品的更多信息的客户向第三方公司发送一条短信,说明产品代码。作为回报,客户端收到相同的代码,但数字被乘以(可能乘以 2)并转换为基数 36。除此之外,最后一个字符被添加到代码中,即控制号,以使代码对 Luhn 有效以 36 为基数的算法。用户输入收到的代码,我们公司在服务器端根据产品代码验证它(根据 Luhn 验证,除以 2 并切换回基数 16)。
这听起来相当安全和适当吗?当其中两个不需要通信时,它是由三方发送消息的有效方式吗?
很抱歉编辑,但当我写第一篇文章时,我的想法一定在别处。