在会话中存储OTP是否安全?

Jac*_*ius 0 c# asp.net security session

我正在编写一个Web应用程序,对于某些操作,用户需要输入“一次性密码(OTP)”-与大多数银行网站类似。

因此,我基本上需要生成一个随机字符串,将其存储在某个地方,将其发送给用户,然后根据我存储的那个来验证输入的引脚。

将生成的字符串存储在ASP Session对象中是否安全?

小智 5

不要存储PIN码。对其进行哈希处理(一种SHA算法,最好添加一些盐)并存储哈希值。然后将用户键入的哈希值与您存储的哈希值进行比较。然后,如果您的存储(无论是在会话对象,某个数据库中还是在其他任何存储中)受到破坏,攻击者将不会了解PIN码是什么。