php hashid,PHP用整数生成绝对不重复的唯一ID类库——Hashids

在项目中,暴露给用户真实的项目ID,很有可能被恶意采集,很有可能被猜到目前有多少量(对造假不利)。前两天群里有人分享了一个php类库Hashids,就可以解决这个问题。

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还是很不错的!

composer:hashids/hashids

程序员聚集地Q群:74401592

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值