0

我们有一个系统部署在无法保证互联网访问的远程位置,系统的一部分需要密码,但是用户可能会忘记密码并要求恢复选项。

我正在尝试创建一个允许我生成恢复密码的工具,密码需要对系统是唯一的(系统可以提供唯一的数字标识符)并且对时间敏感。

理想情况下,系统将以这种方式工作:用户致电支持并提供他的系统标识符。支持在恢复工具中输入他的标识符并取回在该小时/天有效的密码。当用户在他的系统中输入生成的密码时,系统将允许访问。

我想远程系统必须以相同的方法生成密码,以与支持提供的密码进行比较,这可能会带来安全风险,代码需要进行一些逆向工程校对。我正在寻找 C# 解决方案,但欢迎使用其他方法。

4

1 回答 1

1

创建一个随产品一起提供的表单,该表单创建一个特定于机器的哈希,用户通过电话将其读取给技术支持代理。然后,代理将哈希输入到只有您的支持代理可用的表单中。这种形式接受散列和盐值,并返回一个新的散列,该散列被读回给用户。然后用户输入这个新的哈希,它会显示一个重置密码表单。

在代理端创建新哈希的函数也必须在客户端实现以进行验证。我建议只需将静态盐添加到机器特定的哈希中。

于 2011-11-28T14:30:55.947 回答