分享

安装和使用php的mcrypt扩展

 nywrb 2012-10-12

安装和使用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

转自:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多