条形码 ID 序列:添加随机性

barcode id sequence: adding randomness

我想知道我的条形码序列方法是否足够随机和安全。我目前使用的条形码格式如下:

{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 个不同的选项。如果这对您来说足够随机,那么您就准备好了。