guidsen / fake-identifier
此包的最新版本(v1.0.1)没有提供许可证信息。
一个用于通过哈希保护您ID的包。
v1.0.1
2015-06-30 13:10 UTC
Requires
- php: >=5.5.9
- illuminate/support: 5.1.*
- jenssegers/optimus: 0.1.*
This package is not auto-updated.
Last update: 2024-09-28 17:59:59 UTC
README
使用这个小包,您可以在Laravel和Lumen 5.1中轻松地将内部ID转换为混淆整数。该包基于jenssegers/optimus构建,类似于Hashids。
如果您使用这个库,并使用它提供的特性,您可以通过使用hashed_id
属性来获取哈希标识符。因此,$model->hashed_id
将包含您的哈希ID。
如果您想更改属性名,可以查看使用部分。
安装
composer require guidsen/fake-identifier
设置
哈希算法依赖于3个整数。
- 小于
2147483647
的大质数 - 逆质数,使得
(PRIME * INVERSE) & MAXID == 1
- 小于
2147483647
的大随机整数
您可以自己计算一个质数,或者从这个列表中选择一个。
一旦您选择了一个质数,您可以使用包含的控制台命令来计算用于解码过程的逆质数并生成一个随机整数
> php vendor/bin/optimus spark YOUR_PRIME
Prime: 1580030173
Inverse: 59260789
Random: 1163945558
因为辅助工具依赖于容器绑定,所以您必须使用optimus
键将实例绑定到容器中。这看起来像(填写您刚才生成的值)
$this->app->bind('optimus', function () {
$optimus = new \Guidsen\FakeIdentifier\Optimus(15468539, 1296427827, 340274557);
return $optimus;
});
使用
该库包含两个辅助特性。
FakeIdentifier:此特性应在您的模型中使用。这将添加一个包含哈希ID的属性。
FakeIdentifierHelper:此特性应在您的控制器或基控制器中使用。它将包含一个encode
和decode
方法,可能很有用。
将包含哈希ID的属性,默认为hashed_id
。您可以通过在容器绑定中的Optimus实例上使用setAttributeName
方法将其更改为您喜欢的ID。
$optimus = new \Guidsen\FakeIdentifier\Optimus(15468539, 1296427827, 340274557);
$optimus->setAttributeName('my_hashed_id');