好吧,故事是这样的:
我即将结婚,我想创建一个网站(或应用程序)。显然,我希望只有客人才能访问它。
所以我在考虑一个系统,它需要一个安全代码来注册。问题是,我不相信任何人都不会对代码保持沉默,所以我在考虑为每对夫妇给一个不同的代码(或者是被邀请的人的family) 。
在注册表单上,我将验证输入的代码是否还没有被使用。
但是由于我不知道谁会注册这个应用程序,而且我也没有时间手动注册每个客人,所以我将没有一个数据库,其中包含了向谁提供信息的代码。
因此,我需要一种算法来生成随机的安全代码,反转了E 219E 1201,以检查给定的字符串<代码>E 221E 122是否是验证安全代码<代码>E 223
我需要算法足够复杂,这样人们就无法猜出他们收到的代码有什么神奇之处。(我知道,这感觉很偏执)
生成的证券化代码应该非常简单,比如6到8个字符(数字、大写字母和小写字母的混合)。
主要问题是,我不知道如何执行一个可靠的系统来生成和验证安全代码。
我觉得我应该在服务器端存储一个密钥,这是生成代码所必需的,如果给定的字符串是有效的代码,我将不得不找到它。
假设secret是我的私钥。
生成算法类似于secret + whatever = generated code ( + whatever操作仍有待定义)。
但是如何检查给定的字符串呢?string - whatever =? secret将是解决方案(其中- whatever是+ whatever的反转操作)。
实际上,我不知道whatever可以是什么(或者应该是)。
你有什么建议或指导吗?
对于技术部分,我可能会用JS (使用NodeJS服务器)编写这部分代码。但是,当我谈到安全代码生成的概念时,任何伪代码都将完成的工作。
发布于 2015-05-21 18:59:11
生成个人电子邮件地址(大写)的散列,并使代码成为第一个n个字符。因此,例如,如果您的电子邮件地址是TOUPYE@GMAIL.COM,那么SHA-256散列将是:038122aedbf777b8c7c3aaed14ae7c08249a9d47f82f4455a0d667cacc57d383,因此您的代码将是"038122“。为每个人/家庭生成代码列表。如果某人没有电子邮件地址,请使用电话号码。如果他们没有电话,请使用他们的地址。
https://stackoverflow.com/questions/30375379
复制相似问题