7

我正在寻找设置我的网站(C#/SQL 2008)以允许使用 Google Authenticator 进行两因素身份验证。我的网站正常工作,从获取 QR 码到生成上一个/当前/下一个密钥(我很乐意接受 3,以防时钟不同步)。

显然我们需要为每个用户生成一个密钥,否则每个用户都将拥有相同的一次性密码。

我的问题是存储此密钥的最佳做法是什么?我可以将它作为纯文本存储在用户表中,还是应该加密?

4

1 回答 1

2

为什么不varchar?据我所知,谷歌的二维码是一个字母数字字符串(你可以手写,以防你安装二维码扫描仪)

在我的大学个人项目中,我生成了一个 128 个字符长的字母数字字符串,我将其发送到我的自定义 TOTP 应用程序,我的数据库将此信息存储为 VARCHAR(128) ,

我认为最佳实践答案取决于密钥的大小以及密钥空间的定义方式,而不是 62 个字母数字,为什么不使用整个 ascii 表?您需要将密钥存储为 varbyte 吗?

于 2013-01-13T17:40:51.670 回答