0

我的理解是 openssl_sign 与 RSACryptoServiceProvider.SignData 相同。是否有 openssl(或 php)命令与 RSACryptoServiceProvider.SignHash 相同?

4

1 回答 1

0

弄清楚了。

这是我在与 DotNETs XML 签名兼容的 php 中签署数据的方式

$private_key = "-----BEGIN PRIVATE KEY----- [private data] -----END PRIVATE KEY-----"

$sig1 = "<SIGNATURE><VERSION>1.0</VERSION><DIGEST>";

$sig2 = "</DIGEST><RSAKeyValue><Modulus>[private data]</Modulus><Exponent>[private data]</Exponent></RSAKeyValue></SIGNATURE>";

$pkeyid = openssl_get_privatekey($private_key);

openssl_sign($data, $sig,$pkeyid,OPENSSL_ALGO_SHA1);

$rsasignature = $sig1.strtoupper(bin2hex($sig)).$sig2;
于 2014-02-19T00:05:16.937 回答