我目前正在尝试使用C#生成并发送公共RSA密钥.它应该是PEM格式的2048位长密钥.我使用OpenSSL命令成功完成了以下操作(缩短了一些输出):
$ openssl genrsa 2048
Generating RSA private key, 2048 bit long modulus
............................................................+++
............................................................+++
e is 65537 (0x10001)
$ openssl rsa -pubout
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAy1MoBtENHBhYLgwP5Hw/xRGaBPHonApChBPBYD6fiq/QoLXA
RmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBulvciWnZwp9CUQPwsZ8xnmBWlHyru
xTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuaenREvD7Mn0vgFnP7yaN8/9va4q8Lo
...
...
y5jiKQKBgGAe9DlkYvR6Edr/gzd6HaF4btQZf6idGdmsYRYc2EMHdRM2NVqlvyLc
MR6rYEuViqLN5XWK6ITOlTPrgAuU6Rl4ZpRlS1ZrfjiUS6dzD/jtJJvsYByC7ZoU
NxIzB0r1hj0TIoedu6NqfRyJ6Fx09U5W81xx77T1EBSg4OCH7eyl
-----END RSA PRIVATE KEY-----
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy1MoBtENHBhYLgwP5Hw/
xRGaBPHonApChBPBYD6fiq/QoLXARmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBu
lvciWnZwp9CUQPwsZ8xnmBWlHyruxTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuae
nREvD7Mn0vgFnP7yaN8/9va4q8LoMKlceE5fSYl2QIfC5ZxUtkblbycEWZHLVOkv
+4Iz0ibD8KGo0PaiZl0jmn9yYXFy747xmwVun+Z4czO8Nu+OOVxsQF4hu1pKvTUx
9yHH/vk5Wr0I09VFyt3BT/RkecJbAAWB9/e572T+hhmmJ08wCs29oFa2Cdik9yyE
2QIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
以下代码是我用来使用C#生成公钥的代码:
// Variables
CspParameters cspParams = null;
RSACryptoServiceProvider rsaProvider = null;
StreamWriter publicKeyFile = null;
string publicKey = "";
try
{
// Create a new …Run Code Online (Sandbox Code Playgroud) 我想编写一个应用程序来生成 SSH 2 RSA 公钥和私钥。
我想获得 PuTTY 密钥生成器可以生成的格式的密钥。

在 ChilKat 的帮助下,我也可以生成公钥和私钥,但我不知道如何获得这种格式。
是否有任何示例可以获取该格式的密钥,或者我错过了什么?
非常感谢!
最近我有项目需要在.net core 1.1上运行它。我意识到RSACryptoServiceProvider不在.net核心RSA类上。
在我在stackoverflow中搜索后,只有很少的结果如下=>
C#将私有/公共RSA密钥从RSACryptoServiceProvider导出到PEM字符串
这是上面的帖子提示我下面的链接
https://gist.github.com/brentmaxwell/46081df6fcbc0ca33fe1
我也研究了BouncyCastle PCL 1.8.1.1。我仍然无法解决
任何一种都可以帮助将以下pem格式转换为.net core中的XML格式。
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIZaRouD0ESme7+v
FefIW5aCyrjJWt1mkA5ITWfHHsFbZ8ErIWFTaysr95aLWIdHkEoBUi0lNKwnlQdP
V0/X5XNTJK03o/u+52424ppinZbog2nDSWYeuAwTe2zipdGB9COwJ/7TIgJyTLhX
fxAax7l6FxKmP6oXK7SJk5Ln5ZAlAgMBAAECgYBSatC5xxuc8XAab4KFlFAy7XsE
jmjSRpd6W3o4flrsjHECe73XYX/tlOQmEsc0/X6TF2pczWUZcpKmUFKkZTGYgM4q
ku0qimu9rsbMNFrro0R0weV2sq2sShRzN9qTXbDv/6ze6jn1gzDCSEAsb0LLtTQM
J2jH9zPm7tRzK8qAoQJBALr+EkQxZxDMe/TD7l15lFWH+DZPMGC9X7ZSafICzdgJ
u+XPAQiDOVFmtd/hEIF9ee7ifhc1Zf4NZy4QQGdrQT0CQQC37xvGZdrsteWaNrKF
QFVkG+zJ4gProhR1QDUB1LGOny+avL5mi+nbghJ7XwfI7NqFPYzTUjmNp3lVm5IG
O6kJAkAk9fdyVzmCDokp1liVTWTOizO6uGhdltEGXr/mQDujyjjDsekIX7fCqUSl
3fy/O6gQWeCGgd2JG+kbJ8czKfYZAkB0UuTm8S2mPFdL00HNoeUfHcX/20+NawCz
MnsTgFcWkrgBjVKA+gVZDIbxvSToPlronwd78elyG7NRn8SW6o45AkEAtB0nGH5Y
KXIS07CoQMRBHoXx4f+ojofNoJvzI5Ax+ZBbSx/z5hTSm/jN7llVFRE+3rRyNLig
X/r2O4vVkprHTg==
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
来自https://superdry.apphb.com/tools/online-rsa-key-converter的结果 是有效的。但是bouncyCastle .net核心示例代码并不多
我想在不使用外部软件的情况下在 powershell 中生成一个 RSA 公钥对,我想测试它。它应该能够加密/解密任何在线公钥/私钥验证服务上的数据。
目的-严格教育。我非常清楚您不应该出于安全目的在线导出您的私钥。
到目前为止,我已经尝试过 ssh-keygen和
$RSA = New-Object System.Security.Cryptography.RSACryptoServiceProvider(2048)
[System.Convert]::ToBase64String($rsa.ExportCspBlob(1))
[System.Convert]::ToBase64String($rsa.ExportCspBlob(0))
Run Code Online (Sandbox Code Playgroud)
System.Security.Cryptography.RSACryptoServiceProvider 创建 P、Q 等所有用于计算公钥/私钥的原材料,但我不想要原材料。
ExportCspBlob(x) 提供了一个密钥,但是当我尝试在线验证时,密钥对验证失败。
那么,有没有什么方法可以在不使用任何外部程序的情况下在powershell中创建RSA公钥私钥对,可以直接复制粘贴到证书格式中(带有-----BEGIN PRIVATE KEY----内容的那种) ?
我想在 C# 中生成 RSA 密钥对。我能够获取密钥的 xml 字符串,但我需要它们的 base64 表示。这是我的 xml 代码
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
privateKeyXmlText = rsa.ToXmlString(true);
publicKeyXmlText = rsa.ToXmlString(false);
Run Code Online (Sandbox Code Playgroud)
但我想要的是
privateKeyStr=="MIICITAjBgoqhkiG9w0BDAEDMBUEEKaTCK5mE2MsQANxDAfaJe8CAQoEggH47qb6bFO+a2Fj...";
publicKeyStr == "MIIBKjCB4wYHKoZIzj0CATCB1wIBATAsBgcqhkjOPQEBAiEA/////wAA...";
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我想从Objective-C中的模数和指数生成一个rsa公钥(pem).该功能可以通过以下方式在Java中完成;
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new RSAPublicKeySpec(modulus, exponent));
Run Code Online (Sandbox Code Playgroud)
虽然我在为iOS平台编写这个时遇到了一些麻烦.我知道OpenSSL,但我找不到成功的方法,但仍然无法生成此密钥.还看了一下SCZ-BasicEncodingRules-iOS,但这会返回一个NSData值,我不知道如何尝试将其转换为NSString.
我有一个 PEM 格式的私钥。如何从中提取公钥。我需要能够以实用的方式在代码中执行此操作,而无需执行进程(使用 openssl)。
未使用的私钥示例:
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我看过很多其他 SO 文章,但它们并不是我所需要的。 c# RSA 从私钥中提取公钥 使用 RSA 私钥生成公钥? C# RSA 公钥输出不正确
rsa ×7
c# ×4
pem ×3
openssl ×2
.net ×1
.net-core ×1
certificate ×1
command-line ×1
encryption ×1
ios ×1
objective-c ×1
powershell ×1
public-key ×1
putty ×1
ssh ×1
windows ×1