algorithm - 安全码生成算法

标签 algorithm passwords password-protection password-encryption

好吧,故事是这样的:

我马上就要结婚了,我想创建一个网站(或应用程序)。 显然,我希望只有客人可以访问它。

所以我在考虑一个需要安全代码才能注册的系统。 问题是我不相信任何人不会对代码保持沉默,所以我正在考虑为每对受邀人(或家庭)提供不同的代码 .

在注册表单上,我会验证输入的代码是否尚未被使用

但由于我不知道谁会注册该应用程序,而且我真的没有时间手动注册每位客人,所以我不会有一个数据库,向谁提供了哪些代码 信息。

所以,我需要一种算法来生成随机安全代码,以及反转代码,以检查给定的是否string 是一个验证安全码

我需要算法足够复杂,这样人们就无法猜到他们收到的代码背后有什么魔力。 (我知道,感觉很偏执)

生成的安全码应该很简单,比如6到8个字符(数字、大小写字母的混合)


主要问题是我不知道如何执行可靠的系统来生成和验证安全代码。

我觉得我应该在服务器端存储一个 key ,这是生成代码所必需的,如果给定的字符串是有效代码,我将不得不找回它.

假设 secret 是我的私钥。

生成算法类似于 secret + whatever = generated code(其中 + whatever 操作仍有待定义)。

但是我怎样才能检查给定的字符串呢? string - 随便 =? secret 将是解决方案(其中 - whatever+ whatever 的反向操作)。

嗯,我实际上不知道whatever 可能(或应该)是什么。

您有什么建议或指导吗?

对于技术部分,我可能会用 JS(使用 NodeJS 服务器)编写代码。 但是当我谈论安全代码生成概念时,任何伪代码都可以完成这项工作

最佳答案

生成此人的电子邮件地址(大写)的哈希值,并将代码设为前 n 个字符。因此,举例来说,如果您的电子邮件地址是 TOUPYE@GMAIL.COM,那么 SHA-256 哈希将是:038122aedbf777b8c7c3aaed14ae7c08249a9d47f82f4455a0d667cacc57d383 因此您的代码将是“038122”。为每个人/家庭生成一个代码列表。如果某人没有电子邮件地址,请使用电话号码。如果他们没有电话,请使用他们的地址。

关于algorithm - 安全码生成算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30375379/

相关文章:

ruby-on-rails - Authlogic 密码的安全性如何?

security - 客户端密码哈希与纯文本

authentication - 在android中卸载应用程序时需要密码

python - xlsxwriter 设置密码打开文档?

https - 通过 HTTPS 的纯文本密码

algorithm - 关于两个数组的中位数的问题

algorithm - haskell 中的 Quine–McCluskey 算法

php - 按匹配百分比将用户偏好与对象属性相匹配

c - C语言中如何遍历双向链表中的n个元素?

c# - 使用 C# 客户端处理 Oracle 密码过期和宽限期