ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
最近兼职的一个项目里使用了加解密函数 mcrypt_encrypt mcrypt_decrypt 其依赖于mcrypt扩展库,在Php5.6版本以上是默认编译加载的,低版本要在php.ini中显示加载 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件;在高版本的PHP中,Windows下似乎默认开启了mcrypt的扩展,既不需要在配置文件php.ini中做配置,在扩展引用目录中也没有看到相应的扩展文件,在linux下则需要安装对应的mcrypt.so扩展。 mcrypt扩展支持多种加密算法和模式,可以使用mcrypt_list_algorithms()和mcrypt_list_modes()来显示支持的加密算法和加密模式。 二、mcrypt扩展的使用 加密 1、打开加密算法和模式 mcrypt_module_open('tripledes', '', ecb'', ''); 第一个参数是使用的加密算法的名称,对应mcrypt_list_algorithms()输出的加密算法;第三个参数对应加密的模式,对应mcrypt_list_modes()输出的支持加密模式。 2、创建初始化向量 mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); PS.在Window平台下,第二个参数固定使用MCRYPT_RAND 3、初始化加密缓冲区 mcrypt_generic_init($td, $key, $iv); $td为返回的加密描述符,$key为加密密钥,$iv为初始化向量 4、数据加密 $encrypted_data = mcrypt_generic($td, $data); $td为加密描述符,$data为加密前的数据,数据加密函数返回加密后的字符串。 5、结束加密,执行清理工作 mcrypt_generic_deinit($td); 解密 1、打开解密算法和模式,同上,得到$td解密描述符 2、创建初始化向量,同上,得到$iv初始化向量 3、初始化解密缓冲区 mcrypt_generic_init($td,$key, $iv); 4、数据解密 $decrypted_data = mdecrypt_generic($td, $encrypted_data); PS.$encrypted_data为解密前的密文,$decrypted_data为解密后的明文。