snortlin / nano-id
一个轻量级、安全、URL友好的PHP唯一字符串ID生成器
1.0.0
2021-05-03 12:46 UTC
Requires
- php: ^7.4|^8.0
This package is auto-updated.
Last update: 2024-08-29 06:01:41 UTC
README
一个轻量级、安全、URL友好的PHP唯一字符串ID生成器。
此包是ai的nanoid的PHP实现。阅读其文档以获取更多信息。
- 快速。 它比UUID更快。
- 安全。 它使用加密强随机API。可以在集群中使用。
- 紧凑。 它使用比UUID更大的字母表(
A-Za-z0-9_-
)。因此,ID大小从36个符号减少到21个符号。 - 可定制。 可以覆盖大小、字母表和随机字节生成器。
安装
首选的安装方法是使用Composer
composer require snortlin/nano-id
使用方法
基本用法
use Snortlin\NanoId\NanoId; $nanoId = NanoId::nanoId(); // "unQ87dO06B5B-Ybq2Aum5" // Custom size, default = 21 $nanoId = NanoId::nanoId(16); // "6PUg-8nn5IQrvKNw" // Custom size and alphabet $nanoId = NanoId::nanoId(16, '0123456789abcdef'); // "58b141975c2b72f3"
自定义字母表
use Snortlin\NanoId\NanoId; // Default size (21), numbers (0123456789) $nanoId = NanoId::nanoId(NanoId::SIZE_DEFAULT, NanoId::ALPHABET_NUMBERS); // "782295634533276321176" // Custom size, numbers and English alphabet without unreadable letters: 1, l, I, 0, O, o, u, v, 5, S, s, 2, Z $nanoId = NanoId::nanoId(12, NanoId::ALPHABET_ALPHA_NUMERIC_READABLE); // "AcFQM9X3pCi8"
更快但不安全
默认情况下,Nano ID使用随机字节生成以实现安全性和低碰撞概率。如果您对安全性不是那么关心,而更关心性能,则可以使用更快的非安全生成器。
use Snortlin\NanoId\NanoId; $nanoId = NanoId::nanoIdNonSecure(); // Custom size, default = 21 $nanoId = NanoId::nanoIdNonSecure(16); // Custom size and alphabet $nanoId = NanoId::nanoIdNonSecure(16, '0123456789abcdef');
工具
- ID大小计算器显示调整ID字母表或大小时的重叠概率。
致谢
- Andrey Sitnik ai为Nano ID。
- Stanislav Lashmanov CyberAP为与Nano ID一起使用的预定义字符集。