我有一个40个字符长的SHA1值,存储在InnoDB表的索引列中。为了缩短索引,我希望它能够“压缩”,而不会增加碰撞的风险。
<?php
$a = "875e5d6959da75400c837a79ecca23d79b40e7a5";
$b = base_convert($a, 16, 36);
echo $b; // ft92zicmcfks08088wk0oow44oso8gk
?>
这个解决方案好吗?为什么我不能转换为base64,它给了我以下警告:
Warning: base_convert(): Invalid "to base" (64) in...
答案 0 :(得分:1)
因为根据 base_convert
...
tobase
必须在2到36之间,包括。数字输入 基数高于10的数字将用。表示 字母a-z,含义10,b含义11和z含义35 字母的情况无关紧要,即数字被解释 不区分大小写。