PHP.mk документација

openssl_spki_verify

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.openssl-spki-verify.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.openssl-spki-verify.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
openssl_spki_verify

Референца за `function.openssl-spki-verify.php` со подобрена типографија и навигација.

function.openssl-spki-verify.php

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_verifyГи проверува потпишаниот јавен клуч и предизвикот

= NULL

openssl_spki_verify(string $spki): bool

Ги валидира дадениот потпишан јавен клуч и предизвикот

Параметри

spki

Очекува валиден потпишан јавен клуч и предизвикот

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Errors/Exceptions

Емитува E_WARNING ниво на грешка ако се помине невалиден аргумент преку spki parameter.

Примери

Пример #1 openssl_spki_verify() example

Ги валидира постоечкиот потпишан јавен клуч и предизвикот

<?php
$pkey
= openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');

if (
openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac))) {
echo
$spkac;
} else {
echo
"SPKAC validation failed";
}
?>

Пример #2 openssl_spki_verify() пример од <keygen>

Ги валидира постоечкиот потпишан јавен клуч и предизвикот издаден од елементот <keygen>

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
echo
$spkac;
} else {
echo
"SPKAC validation failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Види Исто така

  • openssl_spki_new() - Генерирај нов потпишан јавен клуч и предизвик
  • openssl_spki_export_challenge() - Експортира предизвик поврзан со потпишан јавен клуч и предизвик
  • openssl_spki_export() - Експортира валиден јавен клуч во PEM формат, потпишан јавен клуч и предизвик
  • openssl_get_md_methods() - Добива достапни методи за дигестирање
  • openssl_csr_new() - Генерира CSR
  • openssl_csr_sign() - Потпиши CSR со друг сертификат (или самиот себе) и генерирај сертификат

Белешки од корисници 2 забелешки

carloshlfzanon на gmail точка com
пред 8 години
This openssl_spki_* funcs are very usefull to use with <keygen/> tag in html5.

Example:

<?php
session_start();

// form submitted... (?)
if(isset($_POST['security']))
{
    // If true, the send from <keygen/> is valid and you can
    // test the challenge too
    if(openssl_spki_verify($_POST['security']))
    {
        // Gets challenge string
        $challenge = openssl_spki_export_challenge($_POST['security']);

        // If true... you are not trying to trick it.
        // If user open 2 windows to prevent data lost from a "mistake" or him just press "back" button
        //  and re-send last data... you can handle it using something like it.
        if($challenge == $_SESSION['lastForm'])
        {
            echo 'Ok, this one is valid.', '<br><br>';
        }
        else
        {
            echo 'Nice try... nice try...', '<br><br>'; 
        }
    }

}

// If you open two window, the challenge won't match!
$_SESSION['lastForm'] = hash('md5', microtime(true));

?>

<!DOCTYPE html>
<html>
<body>

<form action="/index.php" method="post">
  Encryption: <keygen name="security" keytype="rsa" challenge="<?php echo $_SESSION['lastForm']; ?>"/>
  <input type="submit">
</form>

</body>
</html>
neat на neato точка com
пред 5 години
The challenge is not how to very a "trick". It is used as a partial non-repudiation method.

The idea was the challenge could be extracted from the base64 encoded ASN.1 PKCS#1 bits provided from the 'keygen' element.

The SPKAC is a form of CSR which if the right about of information such as the commonName, emailAddress, countryName, stateOrProvinceName, localityName et al., a signed x509 could generated and provided to the requestor.

This would then be installed in the browser and if the webserver was configured to accept client x509 certificates, it would be used in lieu of a password for authentication.

A recommendation was to use the 'challenge' as a form of non-repudiation in the event someone else was on your keyboard. If the application required it could prompt you for the challenge and compare it to a hashed version it stored upon the initial SPKAC process.

Hope that helps clear it up.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.