我需要实现优惠券代码功能。由于所需的代码数量和一些其他限制,我无法将它们存储在数据库中。另外显示的代码需要很短(大约10个字符)。加密小邮件
我最初的想法是使用加密函数通过加密正在进行的计数器来创建代码。但我不知道要用什么方法。
由于计数器我只能编码几个字节,我知道很多算法在使用非常短的消息时是不安全的。
我的方法是一个好主意吗? 我可以使用什么算法?
我需要实现优惠券代码功能。由于所需的代码数量和一些其他限制,我无法将它们存储在数据库中。另外显示的代码需要很短(大约10个字符)。加密小邮件
我最初的想法是使用加密函数通过加密正在进行的计数器来创建代码。但我不知道要用什么方法。
由于计数器我只能编码几个字节,我知道很多算法在使用非常短的消息时是不安全的。
我的方法是一个好主意吗? 我可以使用什么算法?
我不确定这是不是你想要的,根据我的评论,你并没有真正的安全保证,但一个可能的答案可能是用一些数字来给一个prng发个号码,并且发出第一个x代码作为代码。只要x远小于可能的结果总数,重复的机会就很小,并且可以通过重新生成序列来验证代码(为了速度目的,您可能希望散列它的一部分)
如果使用基数62:[AZ AZ 0-9]和10个数字,则有超过839个可能的结果。如果您要为地球上的每个人提供一个独特的代码,那么您应该已经使用了您的可寻址空间的大约0.0000009%
如果您非常关心安全性和防止欺诈,那么您确实应该发送唯一代码当他们尝试使用它时,验证属于特定用户帐户。 10个字符代码中的熵总量具有有限的限制 – Aaron