簡體   English   中英

Windows驗證來自Open SSL php的簽名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM