snortlin/nano-id

一个轻量级、安全、URL友好的PHP唯一字符串ID生成器

1.0.0 2021-05-03 12:46 UTC

This package is auto-updated.

Last update: 2024-08-29 06:01:41 UTC


README

Nano ID logo by Anton Lovchikov

一个轻量级、安全、URL友好的PHP唯一字符串ID生成器。

此包是ainanoid的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');

工具

致谢