php - 条形码 id 序列 : adding randomness

标签 php mysql barcode

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

{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/

相关文章:

javascript - 通过 $_GET 将 URL 变量传递给 Javascript

php - 如何制作正则表达式来检测rupay借记卡

php - 通过 PHP 以编程方式备份​​(和通过电子邮件发送)完整的 MySQL 数据库

mysql - 在 Magento 上导入订单

php - 我可以使用系统函数名称(在类内)定义自己的函数吗?

php - 带有 join 的 Sum 函数给出总和乘以 laravel ORM 中条目的次数与 mysql

ios - Rubymotion - 结束调度::队列

c# - Silverlight/.net 的条码阅读器组件、资源、推荐、动物之森?天啊

javascript - 符号扫描仪无法作为 IBM 手持式 USB 工作

PHP/MySQL 组合两个查询以减少循环