У меня есть эта ошибка с этим файлом:openssl_verify, Предупреждение: openssl_verify(): поставляется ключ из параметров не может быть принужден к открытому ключу
<?php
// $data and $signature are assumed to contain the data and the signature
$signature = null;
$toSign = "C:/Users/User/Desktop/xampp/htdocs/docum.docx";
$fp = fopen("key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
openssl_sign($toSign, $signature, $pkeyid);
openssl_free_key($pkeyid);
echo($signature);
// fetch public key from certificate and ready it
$fp = fopen("C:/Users/User/Desktop/xampp/htdocs/pubkey.der", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);
// state whether signature is okay or not
$ok = openssl_verify($toSign, $signature, $pubkeyid);
if ($ok == 1) {
echo "good";
} elseif ($ok == 0) {
echo "bad";
} else {
echo "ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>
как я могу исправить эту ошибку `... я вычисленный? подпись с закрытым ключом к документу, теперь я хочу проверить его. сначала я создал два php-файла, первый из которых подписал документ, второй - подписи. Я просто не знаю, как взять подпись из первого документа. Он решил собрать все вместе, чтобы попробовать ... Как я могу исправить?
эта ошибка: Фатальная ошибка: Uncaught исключение 'Exception' с сообщением 'ошибка: 0906D06C: PEM подпрограммы: PEM_read_bio: нет линия старта' в C: \ Users \ User \ Desktop \ xampp \ htdocs \ verificaFirma.php: 23 Трассировка стека: # 0 {main} ... это код: $ fp = fopen ("key.pem", "r"); $ priv_key = fread ($ fp, 100000); fclose ($ fp); $ pkeyid = openssl_get_privatekey ($ priv_key); openssl_sign ($ toSign, $ signature, $ pkeyid); openssl_free_key ($ pkeyid); echo ($ signature); $ cert = file_get_contents ('C: /Users/User/Desktop/xampp/htdocs/pubkey.der '); if (! $ Pubkeyid = openssl_get_publickey ($ cert)) { throw new \ Exception (openssl_error_string());} – hisecure
@hisecure Обновлен ответ. – Sammitch
теперь верните эту ошибку с кодом. Неустранимая ошибка: исключение исключения «Исключение» с сообщением: 0D0680A8: asn1 процедуры кодирования: ASN1_CHECK_TLEN: неправильный тег ' – hisecure