Sqids:根据数字生成简短的唯一ID


Sqids (发音为“squids”)是一个开源库,可让您根据数字生成简短的唯一 ID,类似 YouTube 的 ID。这些 ID 很短,可以从自定义字母表生成,并且保证无冲突。

例如:https://example.com/Lqj8a0

Sqids 的主要用途纯粹是视觉上的。如果您想在网络应用程序中使用 ID 而不是数字,Sqids可能是一个不错的选择:

  •  
  • 网址链接缩短:在 URL 中安全使用
  • 事件 ID:无碰撞编码/解码
  • 一次性密码:简短语言

相比UUID,根据数字生成简短的唯一 ID 对于 API 和面向用户的元素更具可读性和可复制性非常有用。

不适合:

  • 敏感数据:这不是一个加密库
  • 用户 ID:可被解码,显示用户数量


1、Java代码位于https://github.com/sqids/sqids-java

编码和解码:

Sqids sqids=Sqids.builder().build();
String id=sqids.encode(Arrays.asList(1L,2L,3L)); // "86Rf07"
List<Long> numbers=sqids.decode(id);
// [1, 2, 3]

2、Python代码位于https://github.com/sqids/sqids-python

编码和解码:

sqids = Sqids()
id = sqids.encode([1, 2, 3]) # "86Rf07"
numbers = sqids.decode(id) # [1, 2, 3]

3、JavaScript代码位于https://github.com/sqids/sqids-javascript

编码和解码:

const sqids = new Sqids()
const id = sqids.encode([1, 2, 3]) // "86Rf07"
const numbers = sqids.decode(id)
// [1, 2, 3]

4、Go代码位于https://github.com/sqids/sqids-go
编码和解码:

s, _ := sqids.New()
id, _ := s.Encode([]uint64{1, 2, 3}) // "86Rf07"
numbers := s.Decode(id)
// [1, 2, 3]

5、PHP代码位于https://github.com/sqids/sqids-php

编码和解码:

$sqids = new Sqids();
$id = $sqids->encode([1, 2, 3]); // "86Rf07"
$numbers = $sqids->decode($id);
// [1, 2, 3]