PHP - 从整数生成 8 个字符的哈希值
有没有办法获取从 1 到 40000 的任何数字并生成 8 个字符的哈希值?
我正在考虑使用 base_convert
但无法找到一种方法来强制它成为 8 个字符的哈希值。
任何帮助将不胜感激!
Is there a way to take any number, from say, 1 to 40000 and generate an 8 character hash?
I was thinking of using base_convert
but couldn't figure out a way to force it to be an 8 character hash.
Any help would be appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
为什么不直接运行
md5
并获取前 8 个字符?因为您需要一个散列,所以部分是否被丢弃并不重要,重要的是相同的输入将产生相同的散列。
Why don't you just run
md5
and take the first 8 characters?Because you are wanting a hash, it doesn't matter whether portions are discarded, but rather that the same input will produce the same hash.
因此,您需要 4 个数字符号才能从 40000 中生成 8 个字符的哈希值:
Therefore you need 4 digit-symbols to produce a 8-character hash from 40000:
从 PHP 8.1 开始,您可以使用 xxHash 获取任何字符串或数字变量的 8 个字符的哈希值。
As of PHP 8.1 you can use xxHash to get 8 characters hash of any string or number variable.
对于 PHP:
http://snipplr.com/view.php?codeview&id=20236< /a>
For php:
http://snipplr.com/view.php?codeview&id=20236
有很多方法......
一个例子
there are many ways ...
one example
那么您想将 6 位数字可重复地转换为 8 位数字字符串吗?
当然,哈希值是不可逆的——但如果没有盐/IV,它可能会很容易被破解。更好的解决方案可能是:
C.
So you want to convert a 6 digit number into a 8 digit string reproducibly?
Certainly a hash is not reversible - but without a salt / IV it might be a bit easy to hack. A better solution might be:
C.