代码之家  ›  专栏  ›  技术社区  ›  Xerri

mcrypt_通用vs mcrypt_加密

  •  5
  • Xerri  · 技术社区  · 14 年前

    有人知道mcrypt_generic和mcrypt_encrypt_在php加密方面的区别吗?

    2 回复  |  直到 6 年前
        1
  •  6
  •   awgy    14 年前

    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);