小编Ama*_*ura的帖子

在C#服务器和PHP客户端中使用RSA KeyPair

我有一个C#服务器,它将生成一个RSA KeyValue对.公钥将被发送到PHP客户端,然后将加密一些数据并发送到服务器.然后,服务器将使用它拥有的私钥进行解密.

我在C#中使用以下代码执行此操作 -

CspParameters cspParams = new CspParameters { ProviderType = 1 };

RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024, cspParams);

string publicKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(false));
string privateKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(true));
Run Code Online (Sandbox Code Playgroud)

现在我需要将生成的公钥传递给PHP客户端.但问题是,当我在下面的函数中使用它时,PHP无法识别在C#中生成的Key String -

public function encrypt($data)
{
    $pubkey = 'BgIAAACkAABSU0ExAAIAAAEAAQBdZ3klDbVjH8oiBtGzHIMixo/TKPlv492kuau9chnARvkpxaRd8Qa82kIF2AvrEllhzjD07UHkVxoVZA2aYN+t'
    $pubKey4 = openssl_get_publickey(  $pubkey );

    openssl_public_encrypt($data, $encrypted, $pubKey4 )

}
Run Code Online (Sandbox Code Playgroud)

openssl_public_encrypt() 功能显示这样的警告:

警告:openssl_public_encrypt():key参数不是C:\ wamp\www\rsa\index.php中的有效公钥

请建议,PHP应识别的公钥格式是什么.

X509证书不是一个选项.

php c# encryption

5
推荐指数
1
解决办法
1027
查看次数

标签 统计

c# ×1

encryption ×1

php ×1