我需要生成简单的,4位数字确认短信代码,这是基于给定的信息,例如用户名,或生日,任何。因此,对于两个相同的输入,我需要两个相同的输出代码。
我不能把这段代码存储在数据库中。
我是用C#编写的,一直在考虑GetHashCode方法,但强烈建议不要在任何地方使用他。也许是一些散列,但他们有更多的那4个字符串。
我如何生成这样的代码?
发布于 2016-12-06 15:39:55
只需将所需的信息片段连接到一个字符串中,然后使用加密哈希函数对其进行散列。把散列的最后4位数取下来,然后结束一天。
发布于 2016-12-07 12:35:41
根据给定的信息,例如用户名,或生日,什么的。因此,对于两个相同的输入,我需要两个相同的输出
为什么?大多数短信确认的目的是确认发起某一特定行动的人的身份。为此,您发送的代码中的内容没有任何区别。只要接收用户输入您发送的内容,这就是您所需要的。此外,基于其他个人数据确定地生成此代码是一个潜在的安全漏洞。
我不能把这段代码存储在数据库中。
SMS不是同步协议。
仅仅因为你发送了一条信息,并不意味着它已经收到,甚至不意味着用户的手机在那个时候已经充电并接通了。用户可能需要几分钟才能掌握您发送的代码,并准备将其输入。
你等着的时候还会把它藏在哪里??
GetHashCode为正在运行的应用程序中的每个.Net对象返回一个唯一值,但一旦该对象超出作用域并被垃圾收集,该值就会消失,无法恢复。
除非你把它藏在某个地方。
https://softwareengineering.stackexchange.com/questions/337624
复制相似问题