seb-c / alpha-increment
该软件包最新版本(1.0.0)没有提供许可证信息。
一个从经典的自动增量数字ID生成真正唯一字符串的库。
1.0.0
2016-11-19 17:01 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^5.6
This package is not auto-updated.
Last update: 2024-09-23 15:24:56 UTC
README
AlphaIncrement是一个简单的库,允许您从增量ID生成真正唯一的字符串。
这并不旨在提供密码学安全,也不适用于安全目的。
如果您需要一种简单的方式来获取某种类型的唯一序列号,而不需要特别隐藏原始ID,这非常有用。
如您所见,结果中仍然存在某种模式,最终用户可能会猜测,但在大多数情况下不应成为问题。
基本使用
$ai = new AlphaIncrement(); echo $ai->encode(1); // prints "TKSAC" echo $ai->encode(2); // prints "TKSAD" echo $ai->encode(3); // prints "TKSAZ" echo $ai->encode(42); // prints "TKSKY" echo $ai->encode(314); // prints "TKSGB" echo $ai->encode(7654321); // prints "9JXCC"
高级使用
您可以向构造函数传递三个参数
- 结果字符串的长度(默认:5);
- 字母表(用作字符串的字符列表)。默认:数字和大写字母。支持Unicode字符;
- 您可以将此处传递为false来禁用字母表打乱,这是默认使用的,以提高结果的随机化。
$ai = new AlphaIncrement(4, '😀😃😉😋😎😴😕😓😞😇', false); echo $ai->encode(1); // prints "😋😞😉😴" echo $ai->encode(2); // prints "😋😞😉😕" echo $ai->encode(3); // prints "😋😞😉😓" echo $ai->encode(42); // prints "😋😞😉😞" echo $ai->encode(314); // prints "😋😞😉😇" echo $ai->encode(654321); // prints "😋😞😉😀"
大数字
当然,您无法将无限数量的ID放入大小有限的字符串中。当ID太大无法适应指定的尺寸时,从ID回退到较大字符串的方法是使字符串比预期的尺寸更大
$ai = new AlphaIncrement(3); echo $ai->encode(10); // returns "SAT" echo $ai->encode(42); // returns "SKY" echo $ai->encode(7654321); // returns "9JXCC" echo $ai->encode(PHP_INT_MAX); // returns "1UL1RDNFPP5OW"