为JWT生成密钥?

时间:2017-05-16 13:31:55

标签: c# .net asp.net-web-api2 jwt

目前我有一个用于JWT令牌生成的硬编码密钥。生成令牌时随机生成此内容的最佳方法是什么?此外,我不明白的是,如果秘密是随机生成的,那么为了验证目的,如何再次随机生成秘密。我在这里错过了一些东西,还是我对这是如何工作的?看来秘密密钥甚至不是随机的。是否会存储在web.config中,例如

2 个答案:

答案 0 :(得分:2)

只是扩展@nodd13的帖子我已经使用以下(在LinqPad中)随机生成一个键:

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中以便稍后引用。

答案 1 :(得分:0)

我使用了此blog post

中的以下代码
var key = new byte[32];
RNGCryptoServiceProvider.Create().GetBytes(key);
var base64Secret = TextEncodings.Base64Url.Encode(key);