调用未定义的函数openssl_encrypt

时间:2016-10-08 14:33:09

标签: php ssl encryption https php-openssl

我有一个使用加密openssl的CMS。我用了很长时间,这种方法对我很有用。

使用SSL证书和https连接构建第一页时出现问题。

加密方法代码:

$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 ...

我不知道如何解决这个问题,因为我真的想保留这种加密方法。

这一切都可能吗?请提供任何建议,提案或其他加密方法。

1 个答案:

答案 0 :(得分:0)

感谢@Artjom B! PHP版本在https连接上更改。 在http为5.6.19,在https 5.2.17上