我正在尝试将 RsaKeyParameter 公钥保存到 SQL 数据库中。我收到一个错误,提示 Bouncy Castle 无法将 RsaKeyParameters 转换为字节。
使用 BouncyCastle C#。
我生成了一个 RSA 密钥对,将私钥和公钥提取到变量中。然后我需要存储公钥以在应用程序的稍后阶段进行验证。
我找到了一篇关于转换为字节然后字符串的帖子,如下所示;
byte[] serializedPublicBytes =
publicKeyInfo.ToAsn1Object().GetDerEncoded();
string serializedPublic = Convert.ToBase64String(serializedPublicBytes);
Run Code Online (Sandbox Code Playgroud)
但它不喜欢 ToAsn1Object。补充一下这是一个例子,我知道我的变量名是不同的。
RsaKeyPairGenerator rsaKeyPairGen = new RsaKeyPairGenerator();
rsaKeyPairGen.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
AsymmetricCipherKeyPair keyPair = rsaKeyPairGen.GenerateKeyPair();
RsaKeyParameters PrivateKey = (RsaKeyParameters)keyPair.Private;
RsaKeyParameters PublicKey = (RsaKeyParameters)keyPair.Public;
Run Code Online (Sandbox Code Playgroud)
公钥应该是字节,然后是字符串,以保存到数据库中。