首页 > 解决方案 > 如何从 id_rsa.pub 文件导入公钥

问题描述

我已经使用 ssh-keygen util 在 Windows 上生成了公钥和私钥。

现在,我正在尝试使用生成的公钥来加密消息。但我找不到如何导入公钥。我试过(遵循https://github.com/dotnet/runtime/issues/31091的建议):

var rsaPublicKey = @"AAAAB3NzaC1yc2EAAAADAQABAAABgQC17+CDVUZ4dGFmHsuCcPiH8mmKg6ysyKj54sgtNaLjkQXeC94HEfCfLiULDqqY462ImfnALWbGf3/zwSxC7/xH9Ak/oZnsOxZ07iDVFEuuGmujNvcOPjNKW1MQC0Qka/FjxhVxTCqOYUjY8iOYZ5aAxdKkRYMCwDxa4BPCsEVDyEfksxmRT28yaACucbaHk6IrAWRAMozXB6JuonyJ68wbUUZ5hjjuZLmvB1EOOD6ue5A96bo1a/zGOAtVPU8HmZIPAxxQp7fAwNPcY3RMS/ytwqw+39ve7oLCaKvkmbnNrn55IhWBV8MwpE8Sl2UV33T/anzoBAFh6XCi3WrGPtTbIA9vmW6WuCtTGKbQPSdYvy6b06hiqBiQQ3V1xQOtG6WqsaOWv5DgPoO8Z/1ajHWbJqy9tKJsVBDAwdG+3H3pZ4j8N2Qo1ZDE3vMRvvSsidxUpfrfxmH5XKl2Xx4jARBculflfShCsqo9xnWN0/YJfZeFPCIdy1R6Rn36jAl1FpE=";
using var rsa = new RSACryptoServiceProvider();
rsa.ImportSubjectPublicKeyInfo(Convert.FromBase64String(rsaPublicKey), out var _);

它一直失败

ASN1 损坏的数据

如何导入公钥,以便我可以RsaCryptoServiceProvider用来加密消息?

以防万一这是id_rsa.pub文件内容:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC17+CDVUZ4dGFmHsuCcPiH8mmKg6ysyKj54sgtNaLjkQXeC94HEfCfLiULDqqY462ImfnALWbGf3/zwSxC7/xH9Ak/oZnsOxZ07iDVFEuuGmujNvcOPjNKW1MQC0Qka/FjxhVxTCqOYUjY8iOYZ5aAxdKkRYMCwDxa4BPCsEVDyEfksxmRT28yaACucbaHk6IrAWRAMozXB6JuonyJ68wbUUZ5hjjuZLmvB1EOOD6ue5A96bo1a/zGOAtVPU8HmZIPAxxQp7fAwNPcY3RMS/ytwqw+39ve7oLCaKvkmbnNrn55IhWBV8MwpE8Sl2UV33T/anzoBAFh6XCi3WrGPtTbIA9vmW6WuCtTGKbQPSdYvy6b06hiqBiQQ3V1xQOtG6WqsaOWv5DgPoO8Z/1ajHWbJqy9tKJsVBDAwdG+3H3pZ4j8N2Qo1ZDE3vMRvvSsidxUpfrfxmH5XKl2Xx4jARBculflfShCsqo9xnWN0/YJfZeFPCIdy1R6Rn36jAl1FpE= domain\mike-912789

标签: c#public-key-encryptionssh-keys

解决方案


推荐阅读