2016-10-08 4 views
1

У меня есть CMS с использованием шифрования openssl. Я использую его в течение длительного времени, и этот метод работает очень хорошо для меня.Call to undefined function openssl_encrypt

Проблема возникла во время создания первой страницы, используя сертификат SSL и соединение https.

метод

Encyption код:

$crypt = array(
    'key' => 'zM6XJLg1wKWvvzhoWHM7', 
    'method' => 'AES-256-CBC', 
    'iv' => 'gantedos', 
); 


function eco_encrypt($string) { 
    global $crypt; 
    $output = false; 

    // hash 
    $key = hash('sha256', $crypt['key']); 

    $iv = substr(hash('sha256', $crypt['iv']), 0, 16); 
    $output = openssl_encrypt($string, $crypt['method'], $key, 0, $iv); 
    $output = base64_encode($output); 

    return $output; 
} 


function eco_decrypt($string) { 
    global $crypt; 
    $output = false; 
    $key = hash('sha256', $crypt['key']); 
    $iv = substr(hash('sha256', $crypt['iv']), 0, 16); 
    $output = openssl_decrypt(base64_decode($string), $crypt['method'], $key, 0, $iv); 

    return $output; 
} 


function eco_encrypt_md5($string) { 
    global $crypt; 
    $output = false; 

    $key = hash('sha256', $crypt['key']); 

    $iv = substr(hash('sha256', $crypt['iv']), 0, 16); 
    $output = openssl_encrypt($string, $crypt['method'], $key, 0, $iv); 
    $output = base64_encode($output); 

    return md5($output); 
} 

теперь, когда я подключить с помощью https: // я получил ошибку:

Fatal error: Call to undefined function openssl_encrypt() in ...

Я не знаю, как решить эту проблему, потому что я на самом деле хотите сохранить этот метод шифрования.

Возможно ли это? Пожалуйста, любые предложения, предложения или другие криптографические методы.

+0

вы вызываете функцию под названием 'openssl_encrypt()', но такой функции нет. –

+0

Я полагаю, вы не можете загрузить расширение openssl, пожалуйста, проверьте все свои расширения с помощью 'phpinfo()' –

+0

да, но без https работает нормально. Это происходит только при использовании безопасного https-соединения. – Jarek

ответ

0

Благодаря @Artjom B !. Версия PHP изменена при подключении https. На http 5.6.19, на https 5.2.17

+0

Это невероятно старая версия PHP. Вы действительно должны использовать одну и ту же установку PHP для обоих протоколов и обновить ее. –

+0

Я просто установил 5.6 как значение по умолчанию для всех учетных записей сервера. Я не знал, что использование протокола https может повлиять на версию PHP на этой же учетной записи. Еще раз спасибо! – Jarek

 Смежные вопросы

  • Нет связанных вопросов^_^