一个 PHP 扩展: 根据数字生成唯一的字符串 ID

2018-04-12 11:45:12 +08:00
 gaozihang

github: https://github.com/cdoco/hashids.phpc.git

一个可以生成类似于 YouTuBe 那种唯一字符串 ID 的功能,可以对用户隐藏数据库中的真正数字 ID

原来有纯 php 代码实现的一个功能,现在把它封装成了一个 php 扩展,性能比纯 php 的版本提升了百倍左右

使用也比较简单:

$hashids = new Hashids();

$hash = $hashids->encode(1, 2, 3, 4, 5); // ADf9h9i0sQ
$numbers = $hashids->decode($hash); // [1, 2, 3, 4, 5]

//你还可以直接使用静态方法
$hash = Hashids::encode(1, 2, 3, 4, 5); // ADf9h9i0sQ
$numbers = Hashids::decode($hash); // [1, 2, 3, 4, 5]

如果你项目中需要这种加密数字 id 的功能,可以试用下这个扩展 😆~

3929 次点击
所在节点    PHP
9 条回复
update
2018-04-12 12:37:10 +08:00
什么原理
yimaneilicj
2018-04-12 16:22:16 +08:00
mark
szopen
2018-04-13 17:23:50 +08:00
对称加密数字,和没加密区别不大吧
jourdon
2018-04-19 16:52:10 +08:00
uuid 嘛
xjroot
2018-05-01 23:04:33 +08:00
这个看得很凶呢😊,可以可以,收藏了先。
xjroot
2018-05-01 23:05:10 +08:00
@jourdon 感觉没那么简单吧😄,
fhefh
2018-05-03 22:39:39 +08:00
@gaozihang 楼主 纯 php 代码实现哪儿有 准备学习下 能否给个链接地址
Foolt
2018-05-29 22:43:02 +08:00
@fhefh
@update

目测就是把只有数字的 10 进制转为有数字有大小写字母的 36 进制或者是有数字有大小写字母有几个符号的若干进制
Foolt
2018-05-29 22:45:44 +08:00
@szopen 把字母打乱,只要别泄露原始数字 ID 那一般人是破解不了的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446179

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX