相关疑难解决方法(0)

将RSA公钥转换为具有Bouncy Castle的RFC 4716公钥

我希望将RSA公钥转换为可以用作SSH公钥的东西.

目前我有Bouncy Castle为我提供了一个如下所示的公钥:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq1Y5300i8bN+cI2U3wJE
Kh3xG/.........jbuz+WB0vvG
P25UwCle2k5siVMwbImEYsr+Xt0dsMmGVB3/6MHAqrM3QQdQ8p2E5TyzL+JYa1FT
gwIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

我希望它具有与此类似的RFC 4716格式:

ssh-rsa AAAAB3NzaC1yc2.......G1p2Ag3mZLFsks7RNHVLgMsGIAikQ==

到目前为止,我的代码使用Bouncy Castle看起来像这样:

var r = new Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
var keys = r.GenerateKeyPair();

var stringWriter = new StringWriter();

var pemWriter = new PemWriter(stringWriter);
pemWriter.WriteObject(keys.Private);
pemWriter.Writer.Flush();
stringWriter.Close();
PrivateKey = stringWriter.ToString();

stringWriter = new StringWriter();
pemWriter = new PemWriter(stringWriter);
pemWriter.WriteObject(keys.Public);
pemWriter.Writer.Flush();
stringWriter.Close();
PublicKey = stringWriter.ToString();
Run Code Online (Sandbox Code Playgroud)

如何重新格式化和编码密钥使其看起来像这样?

有没有人用Bouncy Castle或类似的东西创建SSH公钥?

c# ssh bouncycastle ssh-keys rsa-key-fingerprint

5
推荐指数
2
解决办法
3239
查看次数

如何仅在C#中获取RSACryptoServiceProvider公钥和私钥

我正在下面的代码中运行,仅获取公钥和私钥,但似乎它输出了整个XML格式。我只需要输出公钥和私钥演示中所示的密钥

        static RSACryptoServiceProvider rsa;
        private RSAParameters _privateKey;
        private RSAParameters _publicKey;
        public RSACrypto()
        {
            rsa = new RSACryptoServiceProvider(2048);
            _privateKey = rsa.ExportParameters(true);
            _publicKey = rsa.ExportParameters(false);

        }
        public string GetPublicKeyString()
        {
            var sw = new StringWriter();
            var xs = new XmlSerializer(typeof(RSAParameters));
            xs.Serialize(sw, _publicKey);
            return sw.ToString();
        }
        public string GetPrivateKeyString()
        {
            var sw = new StringWriter();
            var xs = new XmlSerializer(typeof(RSAParameters));
            xs.Serialize(sw, _privateKey);
            return sw.ToString();
        }
Run Code Online (Sandbox Code Playgroud)

c# asp.net rsa public-key-encryption

3
推荐指数
1
解决办法
2131
查看次数