存储TOTP的密钥

时间:2013-01-11 03:20:25

标签: sql-server-2008 authentication encryption google-authenticator

我正在设置我的网站(C#/ SQL 2008)以允许使用Google身份验证器进行双因素身份验证。我有网站工作,从获取QR码到生成上一个/当前/下一个键(我很高兴接受3,以防时钟不同步)。

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

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

1 个答案:

答案 0 :(得分:2)

为什么不 varchar ?据我所知,谷歌的qr代码是一个字母数字字符串(你可以手动编写,以防你无法安装qr代码扫描器)

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

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