外链论坛

 找回密码
 立即注册
搜索
查看: 12|回复: 0

PHP的Mcrypt加密扩展知识认识

[复制链接]

1297

主题

0

回帖

9911万

积分

论坛元老

Rank: 8Rank: 8

积分
99115814
发表于 2024-7-11 02:25:08 | 显示全部楼层 |阅读模式

今天咱们来学习的是 PHP 中的一个过时的扩展 Mcrypt 。在 PHP7 之前,这个扩展是随 PHP 安装包一块内置发布的,然则此刻新版本的 PHP 中已然了,必须运用这个扩展的话咱们必须单独安装,并且在运用的时候是会报出过时的警告的。因此咱们学习运用这些函数的时候,就必须运用 @ 来抑制错误信息。当然,之因此会对这套扩展发出过时警告,是由于 PHP 更加举荐运用 OpenSSL 来处理类似的加密能力。

模块和算法

Mcrypt 重点运用的 Mcrypt 工具来进行加密操作的,因此在 CentOS 其它操作系统中,咱们必须安装 libmcrypt-devel 来运用这个扩展。倘若 yum 中法安装的话,直接更新 yum 源就可

Mcrypt 包括非常多的模块和算法。算法就不消多解释了,便是用来对数据进行加密的方式。而模块,包含 CBC, OFB,CFB 和 ECB 这几种,是一系列的分组、流式加密的模式,有举荐的模块,有安全的模块,详细的区分大众能够自动查阅关联的资料,这里咱们先看一下咱们的环境中所支持的模块和算法。

$algorithms = @mcrypt_list_algorithms(); print_r($algorithms); // Array // ( // [0] => cast-128 // [1] => gost // [2] => rijndael-128 // [3] => twofish // [4] => arcfour // [5] => cast-256 // [6] => loki97 // [7] => rijndael-192 // [8] => saferplus // [9] => wake // [10] => blowfish-compat // [11] => des // [12] => rijndael-256 // [13] => serpent // [14] => xtea // [15] => blowfish // [16] => enigma // [17] => rc2 // [18] => tripledes // ) $modes = @mcrypt_list_modes(); print_r($modes); // Array // ( // [0] => cbc // [1] => cfb // [2] => ctr // [3] => ecb // [4] => ncfb // [5] => nofb // [6] => ofb // [7] => stream // )

mcrypt_list_algorithms() 函数能够得到当前环境下所有支持的 Mcrypt 算法。而 mcrypt_list_modes() 则打印出了当前环境下所有可支持的模块。重视在某些版本的 PHP 某些系统中,这些内容会有所区别,在运用 Mcrypt 关联的加密能力的时候,这两项都是相互协同运用的。因此呢咱们有必要在必须运行 Mcrypt 的环境中预先确定好当前环境下所支持的模块和算法。

加密解密数据

$key = hash(sha256, secret key, true); $input = json_encode([id=>1, data=>Test mcrypt!]); $td = @mcrypt_module_open(rijndael-128, , cbc, ); $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URA
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-7-29 11:26 , Processed in 0.177576 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.