C# 将RSA加密代码从.net转换为PHP
我有一些C#.net代码需要转换为PHP,但我在这方面遇到了一些问题,如果有任何帮助,我将不胜感激 这段代码基本上加密了XML的一部分C# 将RSA加密代码从.net转换为PHP,c#,php,.net,C#,Php,.net,我有一些C#.net代码需要转换为PHP,但我在这方面遇到了一些问题,如果有任何帮助,我将不胜感激 这段代码基本上加密了XML的一部分 RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider(); rsaCryptoServiceProvider.FromXmlString(GetCertificates(certificateSerialNumber).PrivateKey
RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider();
rsaCryptoServiceProvider.FromXmlString(GetCertificates(certificateSerialNumber).PrivateKey.ToXmlString(true));
return Convert.ToBase64String(rsaCryptoServiceProvider.SignData(Encoding.Unicode.GetBytes(elementsValue), CryptoConfig.MapNameToOID("SHA256")));
到目前为止,我有:
function encrypt($message) {
$priv = "---privatekey---";
openssl_private_encrypt($message, $encrypted, $priv, OPENSSL_PKCS1_PADDING);
return base64_encode($encrypted);
}
但是我似乎不能产生与上面代码相同的加密
谢谢。对于RSA,您可以使用phpseclib: 请记住使用您的
私钥
<?php
include('Crypt/RSA.php');
$privatekey = file_get_contents('private.key');
$rsa = new Crypt_RSA();
$rsa->loadKey($privatekey);
$plaintext = new Math_BigInteger('aaaaaa');
echo $rsa->_exponentiate($plaintext)->toBytes();
?>
请注意-加密是用公钥完成的,解密是用私钥运行的。第二,不要使用Unicode,而是Utf8编码。梅里·X-masI我知道是这样,但我正在处理的组织出于某种原因采取了另一种方式,他们不会采取任何其他方式。