c#中openssl_public_encrypt的备用函数

时间:2013-03-15 06:12:35

标签: c# cryptography openssl public-key-encryption

我有public.key和private.key两个文件都包含字符串键。 我在PHP中实现加密和解密,添加下面的代码。

现在我想在c#(加密和解密)中做同样的事情,我用php实现(方式应该是openssl_public_encrypt方法 - 因为否则最后我发送此加密值为发布请求,如果加密方法与我在php中的方式不匹配,会给出错误,说我的加密值错过了一些参数 - 意味着我的加密算法不正确)

我尝试过boncycastle.crypto,但算法不同我认为,

这是php代码 - >

$sensitiveData = $this->merchantcode.'|'.$order_id.'|'.$amountInc.'|'.$this->returnurl;
$public_key ="uuEks4FXTiLU2obIpTNIpqhjgiUhtjW4Si8cKLoT7RThyOvUadsgYWejLg2i0BVz+
           QC6F7pilEfaVSL/UgGNeNdMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCW8KV72IMdhE/wIDAQAB";

 $public_key_splitted = wordwrap($public_key, 64, "\n", true); 

$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
$public_key_splitted
-----END PUBLIC KEY-----
EOD;

$encrypted = '';
if (!openssl_public_encrypt($sensitiveData, $encrypted, $publicKey)) 
die('Failed to encrypt data'); 
$encryptedData = base64_encode($encrypted);

需要在c#中实现相同的功能请提供一些解决方案

谢谢

0 个答案:

没有答案