• a******* 下载了资源 亲测|Vue FileManager Pro v2.2.7专业存储云平台私有云盘多用户网盘程序PHP源码下载
  • a******* 下载了资源 全开源版蓝奏云网盘挂载直链解析源码v0.3.1
  • a******* 下载了资源 全开源版蓝奏云网盘挂载直链解析源码v0.3.1
  • a******* 登录了本站
  • r******8 加入了本站
  • 奇*猫 下载了资源 im聊天社交即时通讯仿微聊原生APP双端pc端转账红包等功能/二开微信/纯源码/聊天系统
  • 奇*猫 下载了资源 【升级版】短剧SAAS系统小程序源码下载
  • 奇*猫 下载了资源 极品模板内容付费管理系统(PHP内容知识付费系统)
  • 奇*猫 下载了资源 全开源优化AI网址国际版导航网站源码下载/支持自动采集
  • 奇*猫 下载了资源 码支付开源源码/码支付源码 聚合支付源码下载

正常情况下,当浏览文章页面时,我们会在URL中看到真实的文章ID。如果你不想将数据库中的数据ID暴露给用户,那你可以使用Hashids,它是一个小型的PHP库,可将数字id生成类似Youku,Weibo之类的字符串id。

Hashids是一个能利用整数生成出短小、唯一、非连续标识符的类库,它支持包含php等多种语言。

Hashids支持通过生成出来的标识符进行解码为原数字,还支持加盐加密,不会因为大家都用这个类库就被猜到真实ID。

安装

使用Composer安装Hashids。

$ composer require hashids/hashids

使用

安装好Hashids后,在php中引用Hashids

<?php 
require 'vendor/autoload.php';

use Hashids\Hashids;

$hashids = new Hashids();
$id = $hashids->encode(1); //1 -> jR

以上代码中会把数字1转换成字符串jR

可以使用decode()方法还原解码id,注意这里得到的是一个数组。

$numbers = $hashids->decode($id); // [1]

你也可以加盐,或者说是设置一个密钥,与别的项目不一样,可以保证生成唯一的字符串。

use Hashids\Hashids;

$hashids = new Hashids('My Project');
$hashids->encode(1, 2, 3); // Z4UrtW

$hashids = new Hashids('My Other Project');
$hashids->encode(1, 2, 3); // gPUasb

当然,你也可以将转换后的字符串的长度加长,比如下方代码设置了字符串为10位字符。

use Hashids\Hashids;

$hashids = new Hashids(); // no padding
$hashids->encode(1); // jR

$hashids = new Hashids('', 10); // pad to length 10
$hashids->encode(1); // VolejRejNm

是不是使用很简单,值得注意的是:

  • Hashids解码时返回的是数组,哪怕是一个id数字最后也会返回数组。
  • Hashids不能转换加密负数。
  • Hashids不是安全库,不能将敏感信息作为编码。

Hashids项目地址:https://github.com/ivanakimov/hashids.php

在线客服请认准 @Pan10yuanma   👈直接点击联系客服,注意核实账号!!!

 
显示验证码
没有账号?注册  忘记密码?