php / openssl 中的 RSACryptoServiceProvider SignHash 等效项?

Posted

技术标签:

【中文标题】php / openssl 中的 RSACryptoServiceProvider SignHash 等效项?【英文标题】:RSACryptoServiceProvider SignHash equivalent in php / openssl? 【发布时间】:2013-06-14 09:10:17 【问题描述】:

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

【问题讨论】:

【参考方案1】:

想通了。

这是我在与 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;

【讨论】:

以上是关于php / openssl 中的 RSACryptoServiceProvider SignHash 等效项?的主要内容,如果未能解决你的问题,请参考以下文章

WIN下如何在PHP扩展里打开openssl支持

PHP的OpenSSL加密扩展学习:对称加密

PHP中的AES加密以在openssl中解密

解密用 PHP openssl_encrypt 加密的 C# 中的字符串

c语言中的openssl aes解密

如何使用BASH命令解密PHP Openssl加密