首页程序设计SQIDS编码

SQIDS Encode 在线编码器

将数字或数字列表快速转换为URL安全的短ID字符串(类似YouTube ID)。适合隐藏数据库主键、生成短链接标识符。
支持单个整数,或用英文逗号/空格分隔的多个数字(如 1, 2, 3)

什么是 SQIDS (Sqids) 编码?

Sqids(发音 "squids")是一个开源库,能够将数字(或数字数组)生成短且 URL 安全的唯一标识符。这些 ID 具有自包含性,不依赖数据库自增序列,同时避免暴露原始整数,广泛用于短链接、产品代码、邀请码等场景。相较于 UUID 或哈希截断,Sqids 保证输出简洁、可逆且完全可解码回原始数字。

与传统的 Base64 或 Hashids 一脉相承,Sqids 在保持相同特性的基础上增强了字符集控制、防止生成英语冒犯词汇。本工具基于 Sqids 标准算法,将您输入的数字编码成类似 86Rf07aB3k9X 这样简短的标识符,非常适合 API 友好型输出。

核心特性与优势

安全性与隐私

编码后的 ID 不直接暴露数据库主键值,有效防止恶意遍历。即使攻击者看到 ID k3rP9N 也无法逆向推算出原始数字 12345,只有拥有解密密钥的服务端可还原。但注意 Sqids 并非加密算法,不可用于敏感数据。

高性能 & 短小

平均 ID 长度仅为 4~8 个字符,远低于 UUID(36 位)。编码解码速度极快(微秒级),适合高并发 Web 请求和嵌入式系统。

URL 安全

自动避免使用特殊字符(如 /, +, =),仅使用字母和数字,可直接嵌入 URL 路径或查询参数,无需额外转义。例如:https://domain.com/item/86Rf07

多数字编码

支持将多个数字编码为单个 ID(如 [2024, 5, 18] 编码为 "abc123"),适合表示复合主键或版本+用户ID组合,极大简化系统设计。

默认参数说明

minLength(最小长度)

默认值:0
表示不对生成的 ID 长度做强制补位。编码结果完全由输入数字和字母表决定,通常长度在 4~8 个字符之间。

alphabet(字母表)

默认值:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
包含 26 个小写字母、26 个大写字母和 10 个数字,共 62 个字符。该字符集保证了 ID 的 URL 安全性(无特殊符号),且易于人工读写。

blocklist(黑名单)

默认值:包含 200+ 个常见不雅词汇
系统内置了一份黑名单,用于自动过滤可能生成的不文明词语。当编码结果中包含黑名单中的任何单词(不区分大小写且子串匹配)时,编码器会自动重新生成新的 ID,直到避开黑名单。

如何使用 SQIDS Encode 在线工具

步骤1:输入数字序列

在输入框中填写一个或多个非负整数。例如:100861, 2, 32025 10 01。系统将自动解析为数字数组。

步骤2:点击生成按钮

点击「生成 SQIDS 编码」,工具将向安全后端接口发起编码请求。等待片刻(通常 < 100ms),即可得到短ID字符串。

步骤3:复制并应用

点击「复制结果」按钮将编码内容存入剪贴板,即可用于短链接生成、数据库冗余字段、API 响应或前端展示。

示例: 输入 12345 → 编码结果类似 "A6da";输入 1,2,3 → 得到 "86Rf07"

技术应用场景

短链接服务

将长 URL 对应的自增 ID 编码为短码,生成类似 okeytool.com/s/86Rf07 的精简短链。

用户邀请码

将用户 UID 编码为无规则邀请码,避免顺序猜测,同时保持字符长度在6位以内。

数据分析事件标识

将多维埋点数据(如 渠道ID+活动ID+时间戳)编码为单一事件标识符,简化日志分析。

数据库主键替代方案

对于不希望暴露自增 ID 的前端展示场景,可使用 Sqids 编码后对外暴露,后端解码后查询。

常见问题

SQIDS 和 Hashids 有何区别?

Sqids 是 Hashids 的继承与改进版本,修复了已知的安全边缘情况、支持多语言一致性、并提供更灵活的字符集控制。本工具完全兼容 Sqids 标准。

编码后的 ID 能否保证全局唯一?

编码唯一性取决于原始数字是否唯一。相同数字输入会输出相同短ID;不同数字输出不同ID。需确保原始数字在业务中唯一。

最大支持多少位数字?

支持 JavaScript 安全整数范围内的非负整数(最大 9e15 左右),且支持数组长度最大 255 个数字。输出长度通常为 4~12 字符。

可以自定义 salt 吗?

企业版可通过 API 参数传递自定义 salt,本公共工具使用固定默认盐值,保证可逆性与一致性。

编码后还可以解码吗?

可以,本站已经提供sqids解码