Мне нужно использовать openssl в моем проекте php, поэтому я создал тестовую php-страницу с помощью openssl. Тем не менее, я продолжаю получать эти ошибки, и я не уверен, почему. openssl включен.
Предупреждение: openssl_pkey_export () [function.openssl-pkey-export]: невозможно получить ключ от параметра 1 в C: \ wamp \ www \ opensslsample \ index.php в строке 18
Предупреждение: openssl_pkey_get_details () ожидает, что параметр 1 будет ресурсом, логическим значением в C: \ wamp \ www \ opensslsample \ index.php в строке 21
- Создать сертификат для openssl_pkcs7_sign в php
- php: mcrypt_encrypt to openssl_encrypt и проблемы с OPENSSL_ZERO_PADDING
- Как создать цифровой сертификат и экспортировать в файл .p12 в PHP?
- удаление пароля из закрытого ключа rsa
- Проверить хэш, сгенерированный с помощью php crypt () в NodeJS?
- Подготовка к удалению Mcrypt в PHP 7.2
<?php //echo phpinfo(); $privateKey = openssl_pkey_new(array( 'private_key_bits' => 1024, 'private_key_type' => OPENSSL_KEYTYPE_RSA, )); openssl_pkey_export($privateKey, $privkey,"123"); $pubkey=openssl_pkey_get_details($privateKey); $pubkey=$pubkey["key"]; ?>
Это может помочь, если вы находитесь в окнах:
OPENSSL должен работать правильно.
Проверьте openssl_error_string
. Я предполагаю, что ваш файл openssl.cnf отсутствует или что-то в этом роде.
Кроме того, вы можете использовать phpseclib, чистую реализацию PHP RSA , для генерации ключей. например.
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); extract($rsa->createKey()); echo "$privatekey<br />$publickey"; ?>
в<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); extract($rsa->createKey()); echo "$privatekey<br />$publickey"; ?>
PHP должен найти ваш openssl.cnf. Лучший способ добиться этого – добавить расположение каталога в переменную среды PATH.