从种子生成的唯一编号

本文关键字:唯一 编号 种子 | 更新日期: 2023-09-27 18:29:39

我不知道这个地方问这个问题是否正确。

我想通过给我的用户一个嵌入了硬编码数字的软件来实现身份验证。它说嵌入在软件中的是x,用户不会知道。该软件有一个按钮,当用户按下它时,它将能够基于x 随机生成随机数*s*,如a、b、c、d、e…等

c说,当用户进入我的网站时,他们需要使用其中有x硬编码的软件,并生成一个随机数。在我的网站中输入username和c作为密码(使用软件动态生成的密码),我的网站知道c确实是由x(合格)生成的,这是我在软件中实现的一个密码,并将其分发给用户。所以我允许用户登录。如果用户输入的随机数不是基于x生成的,我会立即知道并阻止用户登录。此实现背后的原因是防止修复密码。

结论,有没有一种算法,给定x

f(x) = randomnumbers
g(x, randomnumbers) = true/false

感谢

从种子生成的唯一编号

您需要查看HMACSHA1类。

给定私钥,您可以生成用户名的安全摘要。

话虽如此,在应用程序中实现"增强"安全性时,你需要非常小心。我看到的主要问题是密钥没有过期,你没有办法撤销它

如果你想更上一层楼,你最好看看客户端证书或软令牌。

一个更简单的解决方案可能是在生成x并将其插入软件时将其存储在自己的数据库中。然后,当软件想要连接时,它会发送x,您的网站会根据您的数据库检查它的存在。这基本上只是一个序列,不同之处在于,您不是对照模式检查序列(x值),而是对照实际生成的密钥进行检查。没有keygen可以将生成的密钥放入数据库中。

担心x被拦截?只需确保使用HTTPS即可。没有MITM,没有传递散列,没有用户参与(即透明)。