Github 使用哪种算法生成他们的个人访问令牌

Which Algorithm does Github uses to generate their Personal Access Tokens

在我的 Nodejs 应用程序中,我有一个功能,用户可以生成 Access Token 并使用它从服务器生成 API Calls。为此,我正在使用 JWT,它运行良好并达到了目的。

但出于多种原因,我们希望我们的 Access TokenGithub Personal Access Token 一样短。你们中的任何人都可以帮助我识别他们用来生成这种短标记的 Algorithem 吗?

我附上两个令牌(我们的和 Github)的屏幕截图

我们对个人访问令牌的实现

Guthub 的个人访问令牌

我做了一些研发并发现了这个 question 但这并没有为我的案例提供任何有用的信息。

the blog post about the new tokens 上概述了该算法。末尾有一个前缀(例如 ghp_)、一个随机组件和一个校验和。随机分量是使用 CSPRNG 生成的;它不包含任何 ID 或其他编码数据。

GitHub 此处使用的方法与 JWT 不同。在 JWT 中,有一些编码数据(一些声明)可以防止篡改 MAC 或数字签名。在大多数情况下,只要 MAC 或数字签名有效,令牌就会被接受直到到期。对于 GitHub 的令牌,随机组件是令牌的标识符,它授予的所有访问权限(包括它是否仍然有效)都通过在服务器端查找来验证;令牌不包含该信息。