## 加解密组件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
- 说明
- PHP快递模式(一键同步多服务器程序文件)
- 多服务器文件md5对比
- 差异文件打包压缩
- 上传压缩包
- 接收压缩包
- 下载压缩包
- 解压覆盖文件
- 数据库同步
- 数据字典与数据库创建
- 数据表测试数据
- 文件对比方法
- think-orm包
- think-orm数据操作模型包
- think-orm数据库操作包
- think-migration数据库迁移包
- think-migration数据库填充数据
- think-migration数据库创建数据表
- think-migration数据库查询数据
- Phinx数据库迁移包
- Phinx数据库填充数据
- Phinx数据库创建数据表
- Phinx数据库查询数据
- 统一生成数据表,模型与数据表数据包
- 统一生成数据表
- 统一生成数据表数据
- 统一生成数据表模型
- 在线文档与测试服务
- 自动生成api接口在线测试
- 自动生成api在线文档
- 自动生成api接口ajax测试示例
- 管理后台页面(可以多个)
- 后台首页
- 后台配置页面
- 列表页面
- 表单页面
- 树状列表页面
- 树状表单页面
- 管理后台程序
- 树状表单添加与修改保存
- 一般表单添加与修改保存
- 树状列表展示
- 一般列表
- 配置页面
- 文件压缩与解压
- 文件压缩
- 文件解压
- 仿token操作
- 生成token
- 解析token
- 加解密组件hashids/hashids
- 随机事件
- 随机数生成
- 随机字符串
- 随机中文字符串
- 随机中文姓名
- 随机密码串
- redis操作
- 异步操作
- 后台表单操作
- 后台列表页面操作
- 模板文件生成新文件操作
- 按模板生成文件
- 生成模型文件
- 生成门面类
- 字符串操作
- 字符串包含
- 字符串排除前一个字符
- 字符串排除前N个字符
- 字符串排除前面一个字符串
- 字符串排除后一个字符
- 字符串排除后N个字符
- 字符串排除后面一个字符串
- 字符串截取
- 数组操作
- 交集
- 并集
- 差集
- 时间戳操作
- 上个月第一天日期
- 上个月最后一天日期
- 本月第一天日期
- 本月最后一天日期
- 下个月第一天日期
- 下个月最后一天日期
- 日期和时间处理组件-Carbon手册
- 日期和时间处理组件-Carbon
- PHP 使用Carbon扩展进行时间处理
- Carbon类
- bootstrap操作
- 表格
- 警告框
- 徽章
- 文件操作
- 文件上传
- 图片操作
- 图片上传
- 图片压缩
- 图片水印
- intervention/image使用
- log日志操作
- url操作
- url生成实例
- url解析实例
- 树状操作
- workerman操作
- 数据库备份
- 门面操作
- 门面操作测试
- 数据字典生成
- 二维码操作
- 二维码生成
- logo二维码
- think-cache缓存
- phpoffice/phpexcel使用
- Curl采集包
- 使用Guzzle执行HTTP请求
- fzaninotto/Faker中文填充数据表
- 安装faker
- Faker创建假数据
- Faker基础数据(英文)
- faker的Lorem(中文)
- 生成Person人物信息
- 生成Address地址信息
- 生成手机号Phone Number
- 生成公司Company信息
- 生成其他中文信息
- 生成时间日期Datetime