💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 加解密组件hashids/hashids ### 问题较多,需要在完善 ### 不依赖其他扩展包 - http://www.04007.cn/article/803.html - http://www.lseventt.com/archives/1659.html Hashids是一个能利用整数生成出短小、唯一、非连续标识符的类库,它支持包含php在内的好多好多(真的好多)种语言。 Hashids支持通过生成出来的标识符进行解码为原数字,还支持加盐加密,不会因为大家都用这个类库就被猜到真实ID。 直接上代码看超简单的用法: ~~~ $id = 123; $hashids = new Hashids\Hashids(); // 编码 $hashID = $hashids->encode($id); // 解码 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); // 数组编码 $hashID = $hashids->encode([1, 2, 3]); // 数组解码 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); // 加盐编码 $hashids = new Hashids\Hashids('我是盐'); // 编码 $hashID = $hashids->encode($id); // 解码 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); ~~~ 当然,初步了解下来,宇润也发现了不少问题。 首先2.0版本在composer配置中设置了不再兼容php<5.6.4,但是经过实验,5.4版本依然能用。有相关需求的用户不要被这个版本限制吓到了。 然后就是hashids支持自定义字典,也就是生成出的编码允许使用哪些字符。这个自定义字典必须包含16个以上字符,否则会抛出异常。在当我把hashids代码中的判断注释后测试发现依然能编码解码没毛病。 只能说问题还是不少的,有相关需求的用户可以fork后自行修改代码。总的来说hashids还是很不错的! github:https://github.com/ivanakimov/hashids.php composer:hashids/hashids