PHP安全处理之Mcrypt使用总结

http://blog.csdn.net/why_2012_gogo/article/details/51194673

PHP安全处理之Mcrypt使用总结:

我们知道在编写代码程序时,除了要保证代码的高性能,还有一个非常重要的,就是数据的安全。对于php而言,它本身提供了几种加密数据的办法,不过还是有限,对于满足特殊数据加解密方面有些欠缺,所以这里推荐使用的第三方拓展mcrypt库,它提供了类型、算法及模式繁多的加解密功能,那么下面来介绍下它的使用。

·     安装及配置

·     预定义常量

·     例子的验证

一、安装及配置

1、安装

因为Mcrypt是作为拓展被PHP所使用,所以可参考PHP拓展文章:

http://blog.csdn.net/why_2012_gogo/article/details/51120645

2、配置

对于mcrypt配置比较简单,我们只需要在php.ini中添加下面即可:

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so

其实,也就是添加拓展加载而已。

二、预定义常量

Mcrypt支持的数据加密模式:

MCRYPT_MODE_ECB (electronic codebook) :适用于随机数据, 比如可以用这种模式来加密其他密钥。 由于要加密的数据很短,并且是随机的,所以这种模式的缺点反而起到了积极的作用。

MCRYPT_MODE_CBC (cipher block chaining) :特别适用于对文件进行加密。 相比 ECB, 它的安全性有明显提升。

MCRYPT_MODE_CFB (cipher feedback) 对于每个单独的字节都进行加密, 所以非常适用于针对字节流的加密。

MCRYPT_MODE_OFB (output feedback, in 8bit): 和 CFB 类似。它可以用在无法容忍加密错误传播的应用中。 因为它是按照 8 个比特位进行加密的, 所以安全系数较低,不建议使用。

libmcrypt-2.4.x 或更高版本:

MCRYPT_MODE_NOFB (output feedback, in nbit): 和 OFB 类似,但是更加安全, 因为它可以按照算法指定的分组大小来对数据进行加密。

MCRYPT_MODE_STREAM 是一种扩展模式,它包含了诸如 "WAKE""RC4" 的流加密算法。

三、例子的验证

下面举例子来说明其使用:

<?php

// 256比特的密钥

$key = hash(‘sha256‘, ‘thisis a secret key‘, true);

// 打开算法和模式

$td = mcrypt_module_open(‘rijndael-256‘,‘‘,‘cbc‘,‘‘);

// 创建初始向量

$iv =mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);

echo ‘加密之前:This is a testting for mcryptuse!</br>‘;

// 初始化加密

mcrypt_generic_init($td,$key, $iv);

// 加密字符串

$encrypt_data =mcrypt_generic($td, ‘This is a testting for mcrypt use!‘);

// 输出加密后的内容

echo ‘加密之后:‘.$encrypt_data.‘</br>‘;

// 结束加密,执行清理工作

mcrypt_generic_deinit($td);

// 初始化解密

mcrypt_generic_init($td,$key, $iv);

// 解密密文

$dencrypt_data =mdecrypt_generic($td, $encrypt_data);

// 输出解密后的内容

echo ‘解密之后:‘.$dencrypt_data.‘</br>‘;

// 结束解密,执行清理工作

mcrypt_generic_deinit($td);

// 关闭加密模块

mcrypt_module_close($td);

?>

结果:

好了,到这里我们已经介绍完了mcrypt的使用。

时间: 2024-08-08 16:04:01

PHP安全处理之Mcrypt使用总结的相关文章

安装mcrypt

Mcrypt扩展是 mcrypt 库的接口,mcrypt 库提供了对多种块算法的支持. 安装mcrypt之前请确认已经安装yum install gcc php-devel 执行命令:yum update 更行系统 执行命令: yum install php-mcrypt 安装mcrypt扩展包 重启apache是扩展生效 http://www.yiweihy.com/knowledge/develop/176-centos-yum-mcrypt.html

解决libmcrypt was not found,无法安装mcrypt

线上一台服务器安装lnmp环境,安装libmcrypt成功,安装mcrypt的时候发生错误: cd /usr/local/src/ tar -zxvf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7 ./configure make && make install cd /usr/local/src/ tar -zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 ./configure 错误详情: checking for 

phpMyAdmin 缺少 mcrypt 扩展.请检查 PHP 配置.

原文链接:http://zhidao.baidu.com/link?url=5Y4eT7bcnTHFUtzDMs7mvtsGc7jqbs2yqXG06AP5_6t7wukC7uVozSrbUf7iYl8xCFQatmBswujNPEnzTv6tW9aFtDKOPC9ZW9TKO3cRjjC loveringer| 五级 sudo aptitude install libmcrypt-dev 或者sudo apt-get install php5-mcrypt模块安装完毕后,将mcrypt模块加载

【PHP】微信开放平台---消息加解密-php7.1 使用openssl代替Mcrypt

1.问题 微信开发小程序消息加解密,官方给出的dome中使用正常,最近升级了7.1发现接收消息不能解密了,最后查了日志又查了各种资料发现 Mcrypt 函数php7.1已经被废弃: 2.解决方式 在Prpcrypt类中使用openssl代替Mcrypt 官方代码: /** * 对密文进行解密 * @param string $encrypted 需要解密的密文 * @return string 解密得到的明文 */ public function decrypt($encrypted, $app

mcrypt.h not found. Please reinstall libmcrypt”的解决方法

CentOS源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包. 有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉. 解决办法一1.安装第三方yum源wget http://www.atomicorp.com/installers/atomicsh ./atomic2.使用yum命令安装yum  install  php-mcrypt  libmcrypt  libmcrypt-devel 解决办法二.使用

PHP mcrypt加密扩展使用总结

在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件:在高版本的PHP中,Windows下似乎默认开启了mcrypt的扩展,既不需要在配置文件php.ini中做配置,在扩展引用目录中也没有看到相应的扩展文件,在linux下则需要安装对应的mcrypt.so扩展. mcryp

PHP编译安装报错: mcrypt.h not found. Please reinstall libmcrypt.

PHP编译安装报错: mcrypt.h not found. Please reinstall libmcrypt. 转载2016-04-25 12:40:44 标签:linuxitphp 解决方法: 1.为系统安装perl-Geo-IP,默认yum源中没有这个包,特意安装epel第三方yum源[[email protected] ~] rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rp

使用php mcrypt加密解密

数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端.数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性.客户端通过确认此次签名的正确性来判断拿到的消息是否来自特定服务端. 数据加密:对数据进行加密,有对称加密和非对称加密两种.PHP中常使用 mcrypt和openssl扩展对数据进行加解密.mcrypt常用在对称加密中,openssl常用在非对称加密中.另外在编程中还经常使用到一种单项散列加密算法,比如MD5,HASH,SHA1,passwor

利用php的mcrypt模块加密解密(AES、DES等等)

php des加密: $cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表 // print_r($cipher_list); // print_r($mode_list); function encrypt($key,$data){ $td = mcrypt_module_open("des", "",

linux centos 下php的mcrypt扩展

去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装包 libmcrypt(libmcrypt-2.5.8.tar.gz ):mcrypt(mcrypt-2.6.8.tar.gz ):  mhash(mhash-0.9.9.9.tar.gz ): 先安装Libmcrypt #tar -zxvf libmcrypt-2.5.8.tar.gz #cd libmcrypt-2.5.8 #./configure #make #make install