我需要实现优惠券编码功能。由于所需代码的数量和其他一些约束,我无法将它们存储在数据库中。此外,显示的代码需要短(约10个字符)。
我最初的想法是使用密码功能,通过加密正在进行的计数器来创建代码。但我不知道该用什么方法。
由于计数器的存在,我只编码几个字节,而且我知道,当使用非常短的消息时,许多算法并不安全。
我的方法是个好主意吗?我能用什么算法?
发布于 2016-11-29 15:06:12
我不确定这是否是你想要的,根据我的评论,你没有真正的安全保证,但一个可能的答案是用一些数字作为种子,并以代码的形式给出第一个x号。只要x比可能的结果总数小得多,重复的机会就很小,代码可以通过重新生成序列来验证(为了速度起见,您可能希望对其中的部分进行散列)。
如果使用基数62: a-zA-Z0-9和10个数字,则可能有超过839个可能的结果。如果你要给地球上的每个人一个独特的代码,你将使用大约0.0000009%的可寻址空间。
https://stackoverflow.com/questions/40868988
复制相似问题