openssl_pkey_export және «1-параметрден кілт ала алмайды»

Мен PHP жобасында openssl пайдалануым керек, сондықтан мен openssl арқылы тестілеу PHP парағын құрдым. Дегенмен, мен осы қателерді аламын және мен неге сенімдімін. openssl қосылды.

Ескерту: openssl_pkey_export() функциясы [function.openssl-pkey-export]: 18-жолда C: \ wamp \ www \ opensslsample \ index.php параметрінің 1-кодын алу мүмкін емес      

Ескерту: 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"];
?>
2
Төмендегі түсіндірмені қараңыз. Бұл көмектесуі мүмкін: stackoverflow.com/questions/16866994/hellip;
қосылды автор tabone, көзі

7 жауаптар

Егер терезеде болсаңыз, бұл көмектесуі мүмкін:

  1. БАСТАУ түймесін басыңыз
  2. CONTROL PANEL түймесін басыңыз
  3. ЖҮЙЕ ЖӘНЕ ҚАУІПСІЗДІК түймесін басыңыз
  4. SYSTEM
  5. түймесін басыңыз
  6. ADVANCED SYSTEM SETTINGS түймесін басыңыз
  7. ҚОРШАҒАН ОРТАНЫ ҚОРҒАУ МҮМКІНДІКТЕРІНІ басыңыз
  8. «Жүйелік айнымалылар» астында «NEW»
  9. түймесін басыңыз
  10. «Айнымалы атау» OPENSSL_CONF
  11. енгізіңіз
  12. «Айнымалы мән» енгізіңіз. Менің - C: \ wamp \ bin \ apache \ Apache2.2.17 \ conf \ openssl.cnf
  13. «OK» түймесін басып, барлық терезелерді жабыңыз және компьютеріңізді RESTART.

OPENSSL дұрыс жұмыс істеуі керек.

8
қосылды

Егер терезеде болсаңыз, бұл көмектесуі мүмкін:

  1. БАСТАУ түймесін басыңыз
  2. CONTROL PANEL түймесін басыңыз
  3. ЖҮЙЕ ЖӘНЕ ҚАУІПСІЗДІК түймесін басыңыз
  4. SYSTEM
  5. түймесін басыңыз
  6. ADVANCED SYSTEM SETTINGS түймесін басыңыз
  7. ҚОРШАҒАН ОРТАНЫ ҚОРҒАУ МҮМКІНДІКТЕРІНІ басыңыз
  8. «Жүйелік айнымалылар» астында «NEW»
  9. түймесін басыңыз
  10. «Айнымалы атау» OPENSSL_CONF
  11. енгізіңіз
  12. «Айнымалы мән» енгізіңіз. Менің - C: \ wamp \ bin \ apache \ Apache2.2.17 \ conf \ openssl.cnf
  13. «OK» түймесін басып, барлық терезелерді жабыңыз және компьютеріңізді RESTART.

OPENSSL дұрыс жұмыс істеуі керек.

8
қосылды

openssl_error_string параметрін тексеріңіз. Менің ойымша, сіздің openssl.cnf файлы жоқ немесе бір нәрсе.

Сонымен қатар, сіз кілттерді генерациялау үшін phpseclib, таза PHP RSA іске асыру пайдалана аласыз. мысалы.

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();

extract($rsa->createKey());

echo "$privatekey
$publickey"; ?>
0
қосылды

PHP сіздің openssl.cnf файлын табу керек. Бұған қол жеткізудің ең жақсы жолы - PATH ортасының айнымалы мәніндегі каталогтың орналасуын қосу.

0
қосылды

PHP сіздің openssl.cnf файлын табу керек. Бұған қол жеткізудің ең жақсы жолы - PATH ортасының айнымалы мәніндегі каталогтың орналасуын қосу.

0
қосылды

phpseclib ішінен оны jose-jwt lib және ол жұмыс істеді, сізге бұл бірнеше өзгерту қажет:

<?php

$config = array();
$config['config'] = dirname(__FILE__) . '/openssl.cnf';

$privateKey = openssl_pkey_new(array(
  'private_key_bits' => 1024,
  'private_key_type' => OPENSSL_KEYTYPE_RSA,
) + $config);

openssl_pkey_export($privateKey, $privkey, "123", $config);

Және бұл минималистикалық конфигурациялық файл:

# minimalist openssl.cnf file for use with phpseclib

HOME            = .
RANDFILE        = $ENV::HOME/.rnd

[ v3_ca ]

openssl.cnf деп аталады. Мұның бәрі жақсы жұмыс істеуі керек.

0
қосылды

phpseclib ішінен оны jose-jwt lib және ол жұмыс істеді, сізге бұл бірнеше өзгерту қажет:

<?php

$config = array();
$config['config'] = dirname(__FILE__) . '/openssl.cnf';

$privateKey = openssl_pkey_new(array(
  'private_key_bits' => 1024,
  'private_key_type' => OPENSSL_KEYTYPE_RSA,
) + $config);

openssl_pkey_export($privateKey, $privkey, "123", $config);

Және бұл минималистикалық конфигурациялық файл:

# minimalist openssl.cnf file for use with phpseclib

HOME            = .
RANDFILE        = $ENV::HOME/.rnd

[ v3_ca ]

openssl.cnf деп аталады. Мұның бәрі жақсы жұмыс істеуі керек.

0
қосылды