[英]Windows to verify signature from Open SSL php
我使用PHP使用openssl_sign對字符串進行簽名。 到目前為止一切正常。
問題是我想從Windows驗證簽名。 為此,我將證書,消息及其簽名傳遞給Windows應用程序。 如何使用CryptVerifyDetachedMessageSignature強制使用PHP代碼使用的證書?
我嘗試了一下,但是它在PHP創建的簽名上返回了“滿足asn1錯誤標簽值”。
謝謝...
由於尚未發布代碼或示例簽名/明文/密鑰,因此很難說。 但是,代替這一點,這是我的方法(使用phpseclib):
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
//$rsa->setPassword('password');
$rsa->loadKey('...'); // private key
$plaintext = '...';
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$signature = $rsa->sign($plaintext);
$rsa->loadKey('...'); // public key
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
如果簽名模式為PSS,則只需執行$rsa->setSignatureMode()
(不帶任何參數)即可。
如果簽名和純文本都在同一個Blob中,則需要使用任何文件格式將其分開。
沒運氣。 最后,我求助於openssl_pkcs7_sign,它輸出一個S / MIME兼容消息,我可以在Windows中處理該消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.