2016-10-08 76 views
1

私は暗号化opensslを使ってCMSを持っています。私は長い間それを使用しています。この方法は私にとって非常にうまくいきます。未定義の関数を呼び出す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

私はextents opensslを読み込むことはできないと思いますが、 'phpinfo()' –

+0

ですべてのエクステンションをチェックしてください。ただし、httpsがうまくいきません。これは安全なhttps接続を使用している場合にのみ発生します – Jarek

答えて

0

@Artjom B!のおかげです。 https接続でPHPのバージョンが変更されました。 httpで5.6.19、httpsで5.2.17

+0

これは信じられないほど古いPHPバージョンです。両方のプロトコルに同じPHPインストールを使用し、同様に更新するべきです。 –

+0

すべてのサーバーアカウントの既定値として5.6を設定しました。 httpsプロトコルを使用すると、同じアカウントでPHPのバージョンに影響する可能性があることはわかりませんでした。ありがとう、もう一度男! – Jarek

関連する問題