2013-03-08 91 views
0

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

在Linux中:

  • 我使用ssh-凯基生成密钥对
  • 我使用PHP中使用BASE64_ENCODE()

到的.ssh/id_rsa.pub转换为base64在VB代码中,我将上面生成的输出硬编码为字符串变量:

Dim publicKey As String = "QUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQTRrNHNPOFhyajhJUkM4WGhEMVJQYlhJbUROTnVwdEpvUEtYNzNhcHc1M0NFUGE3VVNRY0U2SXhyNENWM2FhVXBtR1Fsb1I4akNLVkNoUnhzOUVnT3JQcVNGMTFjL3ZPNzluMXdkU1VWZjhreC9uY1NiV25UUXBtb1paNlN5ZUM3ekhMbWh1Z0o5OWdsVjB3bXBhTXpPeitHa0JBeFBPYlV0MzFYalMxMlBzM0ZUZFBla2s5T0ptMFJxc1plM3krbHU2UURZbDEyejJyTU9lbFhJS2IxSUZ1SnF6SThqL2Y4Q3V2dGxCSmxhelRBWlkyekF1WTZWMXU4c2JnUmE2MTBxMzM3dUdMODErbytCUkRzS0dwN0xBRmRwM1R2ekE3MDZPeFVSSEF0YmRZOVkzaXFISFFzQ3ZQWXBqcVQ0MHVlZ1RHY05jd2JCdjZxa2xlckk2K25Ndz09" 

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

我得到了ar关于“坏版本的提供商的”

+0

为什么你所期望的OpenSSH专有的RSA密钥格式是相同的,以微软的私有密钥格式?此外,id_rsa.pub中的RSA密钥已经是base64编码,为什么又要这样做? – 2013-03-09 15:38:10

回答

1

不定时例外,这是我要如何(使用phpseclib, a pure PHP RSA implementation)将其转换:

<?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; 
相关问题