有谁知道在 PHP 中加密时 mcrypt_generic 和 mcrypt_encrypt 之间的区别?
问问题
6692 次
2 回答
6
mcrypt_encrypt()
结合了几种方法的功能,而mcrypt_generic()
必须在一定的其他调用序列中mcrypt_*
调用。mcrypt_generic()
如果您需要较低级别 API 的灵活性,您会使用它,而mcrypt_encrypt()
充当较高级别的实用程序。
PHP 文档中的这个示例很好地比较了两种 API 方法。它指的是mcrypt_ecb()
,但出于比较的目的,您可以认为它类似于mcrypt_encrypt()
。
来自http://us.php.net/manual/en/mcrypt.examples.php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";
$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
或者:
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
于 2010-05-06T06:36:57.207 回答
1
http://php.net/manual/en/function.mcrypt-generic.php
http://php.net/manual/en/function.mcrypt-encrypt.php
自 PHP 7.1.0 起,这些函数已被弃用。强烈建议不要依赖这些函数。
如今,最好的选择显然是:
于 2018-05-17T10:25:45.347 回答