Skip to content

加密扩展 - Mcrypt

mcrypt 库, 支持很大范围的算法, 如 TripleDES, Blowfish, 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, C2, GOST IN CBC, OFB,CFB,ECB , RC6, IDEA,

安装

这些函数使用 mcrypt来运行. PHP5.0.0 libmcrypt PHP5.2 mcrypt.dll PHP5.3 不需要dll

配置

mcrypt.algorithms_dir NULL PHP_INI_ALL 包含算法的文件夹, 默认是“/usr/local/lib/libmcrypt”, mcrypt_list_algorithms() 可以看更多详情

mcrypt.modes_dir NULL PHP_INI_ALL 包含的模式的文件夹,默认是“/usr/local/lib/libmcrypt” , mcrypt_list_modes()查看更多信息

资源类型

mcrypt_module_open()返回一个加密描述符

函数

mcrypt_cbc mcrypt_cfb mcrypt_ecb mcrypt_generic_end mcrypt_ofb

string mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_RANDOM ] )

创建一个初始化向量(IV)从一个 随机源 - $size - $source 5.3之前,只有 MCRYPT_RAND 可用 MCRYPT_RAND
MCRYPT_DEV_RANDOM /dev/random MCRYPT_DEV_URANDOM /dev/urandom

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

解密函数 - $cipher 解密 - $key 加密key - $data 需要解密的数据 - $mode 模式变量 ecb, cbc, cfb, ofb, nofb, stream - $iv CBC, CFB, OFB 或者 STREAM 的部分算法.如果一个算法需要一个 IV, 但是函数没有提供,将产生一个 警告,并且使用iv设置为 \0

string mcrypt_enc_get_algorithms_name ( resource $td )

返回打开的算法的名称

int mcrypt_enc_get_block_size ( resource $td )

获取打开的算法的区块的大小

int mcrypt_enc_get_iv_size ( resource $td )

返回打开算法的IV的大小 IV is used in cbc, cfb ,ofb,some algorithms in stream mode.

int mcrypt_enc_get_key_size ( resource $td )

返回打开的模式中支持的最大的key的大小

string mcrypt_enc_get_modes_name ( resource $td )

返回打开的模式的名称

array mcrypt_enc_get_supported_key_sizes ( resource $td )

获取打开算法中支持的key sizes

bool mcrypt_enc_is_block_algorithm_mode ( resource $td )

检测打开的模式的算法是否在block上工作

bool mcrypt_enc_is_block_algorithm ( resource $td )

检测 算法的打开模式是否是 区块算法

bool mcrypt_enc_is_block_mode ( resource $td )

检测打开的模式是否输出区块

int mcrypt_enc_self_test ( resource $td )

打开的模块上运行自检.

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

利用给定的参数加密

bool mcrypt_generic_deinit ( resource $td )

这个函数终止指定的加密描述符.清空换缓存但是不关闭模块,你需要自行调用 mcrypt_module_close().

int mcrypt_generic_init ( resource $td , string $key , string $iv )

这个函数初始化所有需要加密的缓存.

string mcrypt_generic ( resource $td , string $data )

加密数据 由于加密时候使用 \0 进行分割,但是数据库的varchar字段将会自动的删除后补空格 , 所以这样存储会丢失数据 - $td mcrypt_generic_init() 初始化的数据.

int mcrypt_get_block_size ( string $cipher , string $module )

获取指定的加密算法的区块大小

string mcrypt_get_cipher_name ( string $cipher )

获取指定算法的名称

int mcrypt_get_iv_size ( string $cipher , string $mode )

返回指定算法/模式的iv 的大小

int mcrypt_get_key_size ( string $cipher , string $module )

获取指定算法键的大小

array mcrypt_list_algorithms ([ string $lib_dir = ini_get("mcrypt.algorithms_dir") ] )

获取所有支持的算法

array mcrypt_list_modes ([ string $lib_dir = ini_get("mcrypt.modes_dir") ] )

获取所有支持的模式

bool mcrypt_module_close ( resource $td )

关闭加密模块

int mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] )

获取指定算法的区块大小

int mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] )

获取打开模式的最大支持的键值大小

array mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] )

获取打开的算法支持的所有的键值大小

bool mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] )

获取指定的模块是否是区块算法

bool mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] )

获取算法是否是区块算法

bool mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] )

模式是否输出区块

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

打开算法模块和使用的模式.

bool mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] )

在指定的模块上运行自测

string mdecrypt_generic ( resource $td , string $data )

模块解密


说明

创建时间: 2023-01-15 09:27:00 , 最后编辑于 2023-11-24 13:56:00