我想知道我的条形码序列方法是否足够随机和安全。我目前使用的条形码格式如下:
{base36 encoded sequential id}-{4 random numeric characters}
ex.:
2v05-9187
2v06-3607
2v07-1810
我想切换到所有数字,以便在无法读取票证的情况下更轻松地进行键盘输入:
34508-4821
34509-9615
对于黑客来说这里发生的事情是显而易见的,但它相当安全(?)
我研究过像 crc32 这样的单向散列,但它会产生可变长度、更长的数字
echo hexdec(crc32("1000-secret"));
echo '<br>';
echo hexdec(crc32("1001-secret"));
//output:
1076135781
225104646983
最佳答案
如果您只需要 4 个随机数,您的方法就可以工作,只需从输出中取出前四个:
echo substr(hexdec(crc32("1001-secret")), 0, 4);
只有四个数字,您将介于 0000-9999 之间,即 10,000 个不同的选项。如果这对您来说足够随机,那么您就万事大吉了。
关于php - 条形码 id 序列 : adding randomness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655603/