RSACryptoServiceProvider 导出 Public 和私钥对 (powershell)

RSACryptoServiceProvider export Public and Private key pairs (powershell)

我需要编写一个脚本,在 客户端 上加密文本,然后将加密文本发送到我的 后端 。我需要在 base64 编码。

我发现获得所需内容的唯一方法是创建一个 RSACryptoServiceProvider 并使用 ExportParameters(true) 获取其私有参数

$cryptoService = New-Object System.Security.Cryptography.RSACryptoServiceProvider(1024);
$params = $cryptoService.ExportParameters(1);
Write-Output $params;

Output:
  Exponent : {1, 0, 1}
  Modulus  : {235, 109, 139, 92...} 
  P        : {236, 204, 53, 183...} 
  Q        : {254, 132, 230, 6...}  
  DP       : {48, 134, 112, 131...} 
  DQ       : {183, 178, 169, 230...}
  InverseQ : {199, 175, 213, 220...}
  D        : {227, 52, 133, 26...}  

我应该如何组合它们以获得 PrivatePublic 密钥对?

在此先感谢您!

您可以做的是生成一个新的随机 RSACryptoServiceProvider 对象。它将创建您需要的密钥。

之后你可以调用 ExportCspBlob(false) 来获取 public 密钥和 ExportCspBlob(true)得到两把钥匙。

最后,在后端,您需要 ImportCspBlob 使用先前 ExportCspBlob(true) 调用的结果,而在客户端,您需要ImportCspBlobExportCspBlob(false) 结果