Laravel Hashid 整合了 Base62, Hashids, Optimus 等高性能编码算法,并提供了统一的、简单易用的调用接口,将「敏感数据」编码成可还原的、非连续的、URL 安全的标识符 (ID) 。
应用场景示例:
项目主页及详细文档: https://github.com/ElfSundae/laravel-hashid
新包求 Star 求反馈 😘
更多应用场景:
1
mingyun 2017-11-07 00:06:48 +08:00
想起微博图片链接也是用的 base62
|
3
lepig 2017-11-07 08:56:34 +08:00
羡慕英文辣么好的人
|
4
ylsc633 2017-11-07 10:23:03 +08:00
先 star 为敬
我一直用的这个.. https://github.com/ivanakimov/hashids.php 不过我用的这个 hashid 只能加密数字 或者数字组成的数组.. 请问您这个可以加密字符串么? 且指定加密后的长度 还有不出现字母数字以外的字符比如 逗号,&号等等 |
5
yangg 2017-11-07 10:25:46 +08:00
base62 自定义 字符的破解难度怎么样?
|
7
elfsundae OP |
9
ylsc633 2017-11-07 10:46:47 +08:00
|
10
elfsundae OP @yangg 如果能确定是 Base62 编码,并且知道至少一组原始值和对应的 Base62 值,理论上最多运行
3.146997326038794e+85 次测试 |
11
elfsundae OP |
12
yangg 2017-11-07 10:59:17 +08:00
@elfsundae 好的,多谢,
试了下加密 6 位数字的字符串,变成了 8,请问下没有什么其它加密方法加密后结果比较短的,比如 6 位数字加密后仍然只有 6 位,只是可以是字母 ps:我试过了 aes-128-ofb,6 位变 12 位了。。 |
14
yangg 2017-11-07 11:25:00 +08:00
|
15
elfsundae OP 安装 `composer require elfsundae/laravel-hashid`
注册 service provider, Laravel 5.5 可跳过这步 然后命令行 php artisan tinker >>> hashid_encode(654321, 'base62') => "2kDZ" >>> hashid_encode(654321, 'base64') => "NjU0MzIx" >>> hashid_encode(654321, 'hex_integer') => "9fbf1" >>> hashid_encode(654321, 'hashids_integer') => "KQxWM" >>> hashid_encode(654321, 'optimus') => 32067276 |