@dr-might

Причина ошибки mcrypt_get_key_size() [function.mcrypt-get-key-size]: Module initialization failed?

Добрый день, написал по мануалу функции криптования данных формы, вылезли ошибки:

Warning: mcrypt_get_key_size() [function.mcrypt-get-key-size]: Module initialization failed in Z:\home\localhost\www\tz_au\task4\task4.php on line 28

Warning: mcrypt_get_block_size() [function.mcrypt-get-block-size]: Module initialization failed in Z:\home\localhost\www\tz_au\task4\task4.php on line 28

Warning: mcrypt_decrypt() [function.mcrypt-decrypt]: Module initialization failed in Z:\home\localhost\www\tz_au\task4\task4.php on line 28

В чем может быть проблема?

Сам код:

// определяем начальные данные
$key = "task4";
$cipher = "rc2";
$mode = "cbc";
                $db_host = 'localhost';
                $db_name = 'task4';
                $db_username = 'root';
                $db_password = 'root';
                $db_table_to_show = 'task4';

// соединяемся с сервером базы данных
                $connect_to_db = mysql_connect($db_host, $db_username, decrypt('root', $key, $cipher, $mode)) or die("Could not connect: " . mysql_error());

// подключаемся к базе данных
                mysql_select_db($db_name, $connect_to_db) or die("Could not select DB: " . mysql_error());

function encrypt($data, $key, $cipher, $mode) { // Шифрование данных
    return (string) base64_encode(mcrypt_encrypt($cipher, substr(md5($key), 0, mcrypt_get_key_size($cipher, $mode)), $data, $mode, substr(md5($key), 0, mcrypt_get_block_size($cipher, $mode))));
}

function decrypt($data, $key, $cipher, $mode) {// Дешифрование данных
    return (string) mcrypt_decrypt($cipher, substr(md5($key), 0, mcrypt_get_key_size($cipher, $mode)), base64_decode($data), $mode, substr(md5($key), 0, mcrypt_get_block_size($cipher, $mode)));
}

if ($_POST["add"]) {

    if (!$_POST["phone"])
        $Errr .= "You must enter a phone number<br>";

    if (!$_POST["email1"])
        $Errr .= "You must enter the e-mail<br>";

    if (!$Errr) {

        $pphone = encrypt(strip_tags($_POST["phone"]), $key, $cipher, $mode);

        $eemail = encrypt(strip_tags($_POST["email1"]), $key, $cipher, $mode);

        mysql_query("insert into task4 (phone, email) values ('$pphone','$eemail')");

        unset($_POST["phone"]);
        unset($_POST["email1"]);
    }
} else if ($_POST["rec"]) {

    if (!$_POST["email2"]) {
        $Errr .= "You must enter the e-mail<br>";
    }

    if (!$Errr) {

        $eemail = encrypt(strip_tags($_POST["email2"]), $key, $cipher, $mode);

        $result = mysql_query("SELECT * FROM task4 where email='$eemail'");

        while ($row = mysql_fetch_array($result)) {

            $Found_phone .= "Your phone number " . strip_tags(decrypt($row['phone'], $key, $cipher, $mode)) . "<br>";
        }

        if (!$Found_phone)
            $Found_phone = 'In your e-mail did not match!';

        unset($_POST["email2"]);
    }
}
  • Вопрос задан
  • 2495 просмотров
Решения вопроса 1
DevMan
@DevMan
Константы надо пользовать:
$cipher = MCRYPT_RIJNDAEL_256;
$mode   = MCRYPT_MODE_CBC;


php.net/manual/en/mcrypt.ciphers.php
php.net/manual/ru/mcrypt.constants.php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы