所以我正在用C#编写一个非常基本的JWT生成器和验证器,我希望JWT的签名是非对称的,这样我可以分发我的公钥,并感到更加安全,只有我的服务器才能拥有私钥。
因此,在selectMethod = () => {
this.setState({selected: true});
}
文件中,您可以看到我生成了一个私钥和公钥,并将它们存储在两个文件中。
RSAKeyProvider.cs
然后在 private (String priv, String pub) CreatePrivateAndPublicKey()
{
using (var rsa = new RSACryptoServiceProvider(2048))
{
try
{
rsa.ExportParameters(false);
string pubKey = RSAKeyExtensions.ToXmlString(rsa, false);
rsa.ExportParameters(true);
string privKey = RSAKeyExtensions.ToXmlString(rsa, true);
return (privKey, pubKey);
}
finally
{
rsa.PersistKeyInCsp = false;
}
}
}
文件中,我处理生成令牌并验证令牌。根据我的C#验证生成的令牌。但是,当我将令牌输入jwt.io并删除私钥并仅插入公钥时,我的令牌无效。
我实际上是在创建无效的令牌吗,或者我在进行令牌签名/验证时有什么不对吗?