Заменить Mcrypt на OpenSSL - возможно ли это - PullRequest
1 голос
/ 31 января 2020

в настоящее время в наших системах есть имплементация mcrypt для шифрования некоторых идентификаторов в нашем приложении PHP. Но Mcrypt устарела, и я должен заменить его.

К сожалению, я не могу преобразовать всю сохраненную информацию. Было бы достаточно расшифровки.

Вот две функции, которые я использую:

self::$key = '123456';

public static function encrypt($plaintext)
{
    $td = mcrypt_module_open('cast-256', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, self::$key, $iv);

    $encrypted_data = mcrypt_generic($td, $plaintext);

    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    $encoded_64 = base64_encode($encrypted_data);

    return trim($encoded_64);
}

и

public static function decrypt($crypttext)
{
    $decoded_64 = base64_decode($crypttext);

    $td = mcrypt_module_open('cast-256', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, self::$key, $iv);

    $decrypted_data = mdecrypt_generic($td, $decoded_64);

    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    return trim($decrypted_data);
}

1 Ответ

0 голосов
/ 31 января 2020

Э? PHP имеет поддержку OpenSSL ... https://www.php.net/manual/en/book.openssl.php

"Так что, конечно, да." Вы можете использовать mcrypt для расшифровки всей имеющейся у вас информации, а затем зашифровать ее с помощью OpenSSL или другого алгоритма шифрования по вашему выбору.

Теперь я хотел бы иметь в виду, что OpenSSL очень много спроектировано вокруг понятия «публичные c и частные ключи». Итак, если вы go этот маршрут, вы должны попытаться воспользоваться этим. На самом деле существует множество алгоритмов шифрования, которые можно использовать в современных PHP ... https://www.php.net/manual/en/function.crypt.php

...