措施员们在编写代码措施时,除了要担保代码的高性能之外,尚有一点黑白常重要的,那就是措施的保障。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 转自: |