php更新主键id,给你的PHP项目隐藏主键ID

在项目开发中, 很多时候会写一些 API 接口, 例如接口会返回这样的数据:[

{

"id": "1",

"content": "content"

},

{

"id": "2",

"content": "content"

}

]

在安全方面考虑, 这样会暴露了主键 ID, 对方可以轻易的知道目前的数据量以及被爬数据会变得很简单.

就如本文的 URL, 主键 ID 是 199 , 如果想要爬整个站点的文章, 直接从 1 开始循环去访问就行了...

所以有这么一个包: hashids https://github.com/vinkla/hashids

可以直接使用 Composer 安装这个包.

博主用 Laravel 安装这个包尝试了一下, 根据文档直接使用:$hash_ids = new Hashids();

dd($hash_ids->encode(1));   // 输出 jR

仔细看官方文档, 如果仅仅这样使用, 每个 1 都是会输出 jR, 如果爬站的人知道使用了这个包就也能知道实际的主键 ID, 所以需要加盐.

这个包加盐很方便, 他的构造方法已经获取了盐.

也就是说, 只需要这样实例化对象就可以加盐:$hash_ids = new Hashids('salt,bubaijun.com');

dd($hash_ids->encode(1));

此时输出的结果是 Ry, 即使爬站的人知道用了这个包, 也无法得知解密后的数据.

解码的方法:$hash_ids = new Hashids('salt,bubaijun.com');

$id = $hash_ids->encode(1);

dump($id);

dd($hash_ids->decode($id));

依次输出为:"Ry"

array:1 [▼

0 => 1

]

所以要拿到这个解密后的 ID, 需要加上 0 索引.$hash_ids = new Hashids('salt,bubaijun.com');

$id = $hash_ids->encode(1);

dump($id);

dd($hash_ids->decode($id)[0]);

则会依次输出为:"Ry"

1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值