今天找了一些可逆的加密解密方法,找了一些但感觉不大好。在composer组件中找到了一个hashids组件,感觉用起来很方便,推荐一下:hashids/hashids。 我这里使用的是2.0.4版,在composer.json中添加以下配置,执行安装。本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
"hashids/hashids":"2.0.4"本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
PHP代码示例:本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
use \Hashids\Hashids; #传入APPNAME让你生成的密串更唯一 APPNAME = 'you unique name'; $hashids = new Hashids(APPNAME); #加密 $newid = $hashids->encode($id); echo $newid; #解密 $idarr = $hashids->decode($newid); print_r($idarr); #对字符串的加密解密 $hashids = new Hashids(); $id = $hashids->encodeHex('507f1f77bcf86cd799439011'); $hex = $hashids->decodeHex($id);本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
除此之外,hashids还可以传入其它参数支持长度固定、字符范围限制功能。
第二个参数:整数。将生成的串加长至固定长度。
第三个参数:字符集。让生成的密串都在这个范围中。本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
#所有生成的密串都是10位长,不限制就传0 $hashids = new Hashids('', 10); #让密串只能是小写字母 $hashids = new Hashids('', 0, 'abcdefghijklmnopqrstuvwxyz');本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
hashids还支持对Mongo的ObjectIds,encode方法支持多个参数传递,返回的加密串以数组的形式返回(即使传的只有一个参数)。本文地址:http://www.04007.cn/article/803.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/803.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |