目前我有一个用于生成 JWT token 的硬编码 key 。生成 token 时随机生成的最佳方法是什么?另外,我不明白的是,如果 secret 是随机生成的,那么出于身份验证目的, secret 怎么会再次随机生成。我在这里遗漏了什么,或者我对它的工作方式有什么看法?看来, key 甚至不是随机的。例如,我会在 web.config 中存储它吗
最佳答案
只是将@nodd13 的帖子扩展到我已经使用以下(在 LinqPad 中)来随机生成一个 key :
var key = new byte[32];
RNGCryptoServiceProvider.Create().GetBytes(key);
var base64Secret = Convert.ToBase64String(key);
// make safe for url
var urlEncoded = base64Secret.TrimEnd('=').Replace('+', '-').Replace('/', '_');
urlEncoded.Dump();
这确实是随机的,据我所知,您只需要执行一次,然后您就可以将其存储在您的 web.config 中以供以后引用。
关于c# - 为 JWT 生成 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44002965/