Cia*_*zka 5 security asp.net-identity asp.net-core
我正在考虑使用 Base64 将 SecurityStamp 存储在我的用户聚合中。在进入陷阱之前,我试图理解 ASP 团队选择使用 Base32 而不是简单地使用 Base64 的原因。
SecurityStamp 不是人类应该在请求中手动读取或传递的东西。我找不到添加内部 Base32 实现而不是使用现有 Base64 的任何明显优势。
private static string NewSecurityStamp()
{
byte[] bytes = new byte[20];
_rng.GetBytes(bytes);
return Base32.ToBase32(bytes);
}
Run Code Online (Sandbox Code Playgroud)
如果你看一下Base32 使用的字母表,你会发现它都是大写字母 和234567。这样做是为了专门减少传输代码时的人为错误(请参阅此 SO 答案中的更多背景)。
当您进一步检查UserManager源代码时,您会看到 被NewSecurityStamp引用,GenerateNewAuthenticatorKey我相信它的目的是提供人类可读的输出(例如,当您没有要扫描的二维码时设置 2FA)。
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |