我正在研究开发一种一次性密码认证系统(j2me 用于电话,php 用于服务器端)
我正在努力了解这个过程,这就是我所理解的
- 用户 > 将随机秘密 (S) 输入哈希 n 次
- 用户 > 提交 S^n 到服务器
- 服务器 > 保存 n 和 S^n
- 用户 > 生成 (S^n)-1 并提交给服务器
- 服务器 > 接受用户输入并再次应用散列函数 1 并根据先前存储的散列检查它
现在,通过阅读 RFC2289 (S/Key),当他们输入唯一标识符时,有一个种子会发给客户端并与用户的秘密连接起来(在第 4 步)这个种子是如何创建的,是随机的,是存储的.