我们如何创建非对称安全密钥?

Son*_*ika 5 c#

我们如何在 C# 中创建 AsymmetrySecurityKey。实际上,我们正在使用 AsymetricSecurityKey 创建签名凭据,这是我们的代码:

// Define const Key this should be private secret key  stored in some safe place
string key = "401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429090fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1";

// Create Security key  using private key above:
// not that latest version of JWT using Microsoft namespace instead of System
var securityKey = new AsymmetricSecurityKey(Encoding.UTF8.GetBytes(key));

// Also note that securityKey length should be >256b
// so you have to make sure that your private key has a proper length
//
var credentials = new Microsoft.IdentityModel.Tokens.SigningCredentials
                  (securityKey, SecurityAlgorithms.HmacSha256Signature);
Run Code Online (Sandbox Code Playgroud)

Fai*_*ani 5

您可以使用以下方法生成公钥/私钥:

public void GenerateRsaCryptoServiceProviderKey()
{
        var rsaProvider = new RSACryptoServiceProvider(512);
        SecurityKey key = new RsaSecurityKey(rsaProvider);      
}
Run Code Online (Sandbox Code Playgroud)

您应该使用RsaSha256以下内容:

var credentials = new Microsoft.IdentityModel.Tokens.SigningCredentials
                  (key, SecurityAlgorithms.RsaSha256);
Run Code Online (Sandbox Code Playgroud)