php之将 MongoDB id 缩减为更短的散列

haluo1 阅读:52 2024-02-27 23:08:18 评论:0

我正在寻找将 MongoDB id 504aaedeff558cb507000004 转换为 PHP 中较短表示的最佳方法?基本上,用户可以在应用程序中引用 id,而那个长字符串很难。

需要注意的是,碰撞应该“罕见”。我们能否以某种方式将其减少到 4、5 或 6 个字符?

谢谢。

请您参考如下方法:

虽然十六进制数字可以存储 16 种不同的状态,但 base64 编码的数字可以存储 64 种不同的状态,因此您可以将整个 MongoDB Id 存储为 16 位而不是 24 位,而不会丢失任何信息:

print hexToBase64("50b3701de3de2a2416000000") . "\n"; # -> ULNwHePeKiQWAAAA 
print base64ToHex("ULNwHePeKiQWAAAA") . "\n";         # -> 50b3701de3de2a2416000000 
 
function base64ToHex($string) { 
  return bin2hex(base64_decode($string)); 
} 
 
function hexToBase64($string) { 
  return base64_encode(hex2bin($string)); 
} 


标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号