openssl_pkey_export и "невозможно получить ключ от параметра 1"

Мне нужно использовать 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

<?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"]; ?> 

Solutions Collecting From Web of "openssl_pkey_export и "невозможно получить ключ от параметра 1""

Это может помочь, если вы находитесь в окнах:

  1. Нажмите кнопку START
  2. Нажмите на ПАНЕЛЬ УПРАВЛЕНИЯ
  3. Нажмите «СИСТЕМА И БЕЗОПАСНОСТЬ»
  4. Нажмите «Система»
  5. Нажмите «ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ СИСТЕМЫ»
  6. Нажмите «ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ»
  7. В разделе «Системные переменные» нажмите «NEW»,
  8. Введите «Имя переменной» OPENSSL_CONF
  9. Введите «Значение переменной». My is – C: \ wamp \ bin \ apache \ Apache2.2.17 \ conf \ openssl.cnf
  10. Нажмите «ОК» и закройте все окна и переустановите компьютер.

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.