措施员们在编写代码措施时,除了要担保代码的高性能之外,尚有 一点黑白 常重要 的,那就是措施的保障。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; PHP加密扩张库Mcrypt操纵 先看一个例子,了解 Mcrypt的事变 流程,再来看看部分 流程应用 的函数:
运行结果: 加密明文:我的名字是?一样平常
人我不见告
他! <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必需 逐一 对应,不然 数据不能被还原。
起首 要下载三个,判别 是 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 如今 你应当 已经把libmcrypt作为一个共享组件了(但不是一个PHP的共享组件)。运行下令 : # ldconfig 它将使得共享器材 可以在C/C++开拓中被应用 。下面把mcrypt动态组件编译到PHP中。起首 ,你必要 PHP-devel 包中包孕 的 'phpize‘ 下令 。 当你当前运行的PHP中已经有了 PHP-devel 后,输入: # cd ext/mcrypt 如今 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 转自: |