0

我想将一个字符串硬编码到一个 VB.NET 程序中,该程序包含我在 linux 计算机上生成的 RSA 公钥的 base64 字符串表示。

在 linux 盒子上:

  • 我使用 ssh-keygen 生成密钥对
  • 我使用 PHP 使用 base64_encode() 将 .ssh/id_rsa.pub 转换为 base64

在 VB 代码中,我将上面生成的输出硬编码为字符串变量:

Dim publicKey As String = "QUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQTRrNHNPOFhyajhJUkM4WGhEMVJQYlhJbUROTnVwdEpvUEtYNzNhcHc1M0NFUGE3VVNRY0U2SXhyNENWM2FhVXBtR1Fsb1I4akNLVkNoUnhzOUVnT3JQcVNGMTFjL3ZPNzluMXdkU1VWZjhreC9uY1NiV25UUXBtb1paNlN5ZUM3ekhMbWh1Z0o5OWdsVjB3bXBhTXpPeitHa0JBeFBPYlV0MzFYalMxMlBzM0ZUZFBla2s5T0ptMFJxc1plM3krbHU2UURZbDEyejJyTU9lbFhJS2IxSUZ1SnF6SThqL2Y4Q3V2dGxCSmxhelRBWlkyekF1WTZWMXU4c2JnUmE2MTBxMzM3dUdMODErbytCUkRzS0dwN0xBRmRwM1R2ekE3MDZPeFVSSEF0YmRZOVkzaXFISFFzQ3ZQWXBqcVQ0MHVlZ1RHY05jd2JCdjZxa2xlckk2K25Ndz09"

Dim myRsa As New RSACryptoServiceProvider()
myRsa.ImportCspBlob(Convert.FromBase64String(publicKey))

我收到有关“提供程序的错误版本”的运行时异常

4

1 回答 1

1

这是我如何转换它(使用phpseclib,一个纯 PHP RSA 实现):

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();

$rsa->loadKey(base64_decode('QUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQTRrNHNPOFhyajhJUkM4WGhEMVJQYlhJbUROTnVwdEpvUEtYNzNhcHc1M0NFUGE3VVNRY0U2SXhyNENWM2FhVXBtR1Fsb1I4akNLVkNoUnhzOUVnT3JQcVNGMTFjL3ZPNzluMXdkU1VWZjhreC9uY1NiV25UUXBtb1paNlN5ZUM3ekhMbWh1Z0o5OWdsVjB3bXBhTXpPeitHa0JBeFBPYlV0MzFYalMxMlBzM0ZUZFBla2s5T0ptMFJxc1plM3krbHU2UURZbDEyejJyTU9lbFhJS2IxSUZ1SnF6SThqL2Y4Q3V2dGxCSmxhelRBWlkyekF1WTZWMXU4c2JnUmE2MTBxMzM3dUdMODErbytCUkRzS0dwN0xBRmRwM1R2ekE3MDZPeFVSSEF0YmRZOVkzaXFISFFzQ3ZQWXBqcVQ0MHVlZ1RHY05jd2JCdjZxa2xlckk2K25Ndz09'));
$rsa->setPublicKey();

$publickey = $rsa->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_XML);

echo $publickey;
于 2013-03-13T19:16:45.463 回答