Github 使用哪种算法生成他们的个人访问令牌
Which Algorithm does Github uses to generate their Personal Access Tokens
在我的 Nodejs
应用程序中,我有一个功能,用户可以生成 Access Token
并使用它从服务器生成 API Calls
。为此,我正在使用 JWT
,它运行良好并达到了目的。
但出于多种原因,我们希望我们的 Access Token
像 Github Personal Access Token
一样短。你们中的任何人都可以帮助我识别他们用来生成这种短标记的 Algorithem
吗?
我附上两个令牌(我们的和 Github)的屏幕截图
我们对个人访问令牌的实现
Guthub 的个人访问令牌
我做了一些研发并发现了这个 question 但这并没有为我的案例提供任何有用的信息。
the blog post about the new tokens 上概述了该算法。末尾有一个前缀(例如 ghp_
)、一个随机组件和一个校验和。随机分量是使用 CSPRNG 生成的;它不包含任何 ID 或其他编码数据。
GitHub 此处使用的方法与 JWT 不同。在 JWT 中,有一些编码数据(一些声明)可以防止篡改 MAC 或数字签名。在大多数情况下,只要 MAC 或数字签名有效,令牌就会被接受直到到期。对于 GitHub 的令牌,随机组件是令牌的标识符,它授予的所有访问权限(包括它是否仍然有效)都通过在服务器端查找来验证;令牌不包含该信息。
在我的 Nodejs
应用程序中,我有一个功能,用户可以生成 Access Token
并使用它从服务器生成 API Calls
。为此,我正在使用 JWT
,它运行良好并达到了目的。
但出于多种原因,我们希望我们的 Access Token
像 Github Personal Access Token
一样短。你们中的任何人都可以帮助我识别他们用来生成这种短标记的 Algorithem
吗?
我附上两个令牌(我们的和 Github)的屏幕截图
我们对个人访问令牌的实现
Guthub 的个人访问令牌
我做了一些研发并发现了这个 question 但这并没有为我的案例提供任何有用的信息。
the blog post about the new tokens 上概述了该算法。末尾有一个前缀(例如 ghp_
)、一个随机组件和一个校验和。随机分量是使用 CSPRNG 生成的;它不包含任何 ID 或其他编码数据。
GitHub 此处使用的方法与 JWT 不同。在 JWT 中,有一些编码数据(一些声明)可以防止篡改 MAC 或数字签名。在大多数情况下,只要 MAC 或数字签名有效,令牌就会被接受直到到期。对于 GitHub 的令牌,随机组件是令牌的标识符,它授予的所有访问权限(包括它是否仍然有效)都通过在服务器端查找来验证;令牌不包含该信息。