首页 >函数列表 >mcrypt_module_open

mcrypt_module_open

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_openOpens the module of the algorithm and the mode to be used

说明

resource mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory )

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close().

参数

algorithm

The algorithm to be used.

algorithm_directory

The algorithm_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.algorithms_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt).

mode

The mode to be used.

mode_directory

The mode_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.modes_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt).

返回值

Normally it returns an encryption descriptor, or FALSE on error.

范例

Example #1 mcrypt_module_open() Examples

<?php
    $td 
mcrypt_module_open(MCRYPT_DES'',
        
MCRYPT_MODE_ECB'/usr/lib/mcrypt-modes');

    
$td mcrypt_module_open('rijndael-256''''ofb''');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Example #2 Using mcrypt_module_open() in encryption

<?php
    

    
$td mcrypt_module_open('rijndael-256''''ofb''');

    

    
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    
$ks mcrypt_enc_get_key_size($td);

    

    
$key substr(md5('very secret key'), 0$ks);

    

    
mcrypt_generic_init($td$key$iv);

    

    
$encrypted mcrypt_generic($td'This is very important data');

    

    
mcrypt_generic_deinit($td);

    

    
mcrypt_generic_init($td$key$iv);

    

    
$decrypted mdecrypt_generic($td$encrypted);

    

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

    

    
echo trim($decrypted) . " ";
?>

参见


  • mcrypt_cbc
  • mcrypt_cfb
  • mcrypt_create_iv
  • mcrypt_decrypt
  • mcrypt_ecb
  • mcrypt_encrypt
  • mcrypt_enc_get_algorithms_name
  • mcrypt_enc_get_block_size
  • mcrypt_enc_get_iv_size
  • mcrypt_enc_get_key_size
  • mcrypt_enc_get_modes_name
  • mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm
  • mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode
  • mcrypt_enc_self_test
  • mcrypt_generic
  • mcrypt_generic_deinit
  • mcrypt_generic_end
  • mcrypt_generic_init
  • mcrypt_get_block_size
  • mcrypt_get_cipher_name
  • mcrypt_get_iv_size
  • mcrypt_get_key_size
  • mcrypt_list_algorithms
  • mcrypt_list_modes
  • mcrypt_module_close
  • mcrypt_module_get_algo_block_size
  • mcrypt_module_get_algo_key_size
  • mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm
  • mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode
  • mcrypt_module_open
  • mcrypt_module_self_test
  • mcrypt_ofb
  • mdecrypt_generic
  • PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道