打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
安装和使用php的mcrypt扩展

安装和使用php的mcrypt扩展

时间:2010-10-23 12:49来源: 作者: 点击:99次
措施员们在编写代码措施时,除了要担保代码的高性能之外,尚有一点黑白常重要的,那就是措施的保障。PHP除了自带的几种加密函数外,尚有功能更全面的PHP加密扩张库和。 此中,Mcrypt扩张库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。PHP加

措施员们在编写代码措施时,除了要担保代码的高性能之外,尚有一点黑白常重要的,那就是措施的保障。PHP除了自带的几种加密函数外,尚有功能更全面的PHP加密扩张库和。

此中,Mcrypt扩张库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。PHP加密扩张库Mcrypt的算法和加密模式

Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来表现,结果如下:

Mcrypt支持的算法有:cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes

Mcrypt支持的加密模式有:cbc cfb ctr ecb ncfb nofb ofb stream

这些算法和模式在操纵中要以常量来表示,写的时间加上前缀MCRYPT_和MCRYPT_来表示,如下面Mcrypt操纵的例子:

DES算法表示为MCRYPT_DES;
ECB模式表示为MCRYPT_MODE_ECB;

PHP加密扩张库Mcrypt操纵

先看一个例子,了解Mcrypt的事变流程,再来看看部分流程应用的函数:

  1. <php  
  2. $str = "我的名字是?一样平常人我不见告他!";   
  3. //加密内容  
  4. $key = "key:111";   
  5. //密钥  
  6. $cipher = MCRYPT_DES;  
  7. //暗码范例  
  8. $modes = MCRYPT_MODE_ECB;  
  9. //暗码模式  
  10. $iv = mcrypt_create_iv(mcrypt_get_iv_size
    ($cipher,$modes),MCRYPT_RAND);//初始化向量  
  11. echo "加密明文:".$str."<p>";  
  12. $str_encrypt = mcrypt_encrypt($cipher,
    $key,$str,$modes,$iv);  
  13. //加密函数  
  14. echo "加密密文:".$str_encrypt." <p>";  
  15. $str_decrypt = mcrypt_decrypt($cipher,
    $key,$str_encrypt,$modes,$iv);  
  16. //解密函数  
  17. echo "还原:".$str_decrypt;  
  18. ?> 

运行结果:

加密明文:我的名字是?一样平常人我不见告他!
加密密文: 锍盌?]鸴?q攦軄L 笑 郺葄"簻 黙
还原:我的名字是?一样平常人我不见告他!

<1>由例子中可看到,应用PHP加密扩张库Mcrypt对数据加密息争密之前,起首创建了一个初始化向量,简称为iv。由 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);可见创建初始化向 量必要两个参数:size指定了iv的巨细;source为iv的源,此中值MCRYPT_RAND为体系随机数。

<2>函数mcrypt_get_iv_size($cipher,$modes)返回初始化向量巨细,参数cipher和mode判别指算法和加 密模式。

<3>加密函数$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); 该函数的5个参数分 别如下:cipher——加密算法、key——密钥、data(str)——必要加密的数据、mode——算法模式、 iv——初始化向量

<4>解密函数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); 该函数和加密函数的参数险些 一样,唯一差别的是data,也就是说data为必要解密的数据$str_encrypt,而不是原始数据$str。

注:加密息争密函数中的参数cipher、key和mode必需逐一对应,不然数据不能被还原。


此安装重要针对Linux体系

起首要下载三个,判别是

libmcrypt-2.5.8.tar.gz

下载所在:

mhash-0.9.9.tar.gz

下载所在:

mcrypt-2.6.8.tar.gz

下载所在:

【几篇文章和在一起的,下面出格重视,但是我创造安装mcrypt时间必要办理对libmcrypt尚有mhash的凭借,这些好办理,不可yum一下就可以了】

# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure

如今你应当已经把libmcrypt作为一个共享组件了(但不是一个PHP的共享组件)。运行下令:

# ldconfig

它将使得共享器材可以在C/C++开拓中被应用。下面把mcrypt动态组件编译到PHP中。起首,你必要PHP-devel 包中包孕的 'phpize‘ 下令。

当你当前运行的PHP中已经有了 PHP-devel 后,输入:

# cd ext/mcrypt
# phpize
# aclocal
# ./configure
# make clean
# make
# make install

如今php的安装目次下面应当有了mcrypt.so 的文件,在 /etc/php.ini 添加:

extension=mcrypt.so

然后重启一下,如许我们就已经将mcrypt功能安装乐成了。

出格留意:

1、phpize需在解压后的包下推行,推行后天生configure脚本

2、运行./configure时,假如提醒

configure: error: Cannot find php-config. Please use --with-php-config=PATH
请应用:

./configure --with-php-config=/php-install-path/bin/php-config #而不是应用php.ini

转自:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
AES PHP 加密 解密 实现实例 | 小木同(Ben)
php与java通用AES加密解密算法
PHP DES/3DES加密解密
Android 和 PHP 之间进行数据加密传输
PHP的Mcrypt加密扩展知识了解
PHP开发安全问题总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服