Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15502746
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2009-12-02 12:02:22

Mcrypt的4种块密码模式是:

·Electronic CodeBook(ECB,电子码证书):该模式用来加密短小无序的数据,例如键;
·Cipher Block Chaining(CBC,密码块链):该模式的安全级别要比ECB高;
·Cipher FeedBack(CFB,密码反馈):该模式用于为字节流按字节加密;
·Output FeedBack(OFB,输出反馈):该模式与CFB模式想类似,但是它可以用于无法容忍错误繁殖问题的应用程序,该模式以8位方式运行,已被证明是不安全的


如果是最新版本的Mcrypt函数库,那么Mcrypt也可以用更加安全的块模式以及以tream模式运行,包括:
·oOutput FeedBack(nOFB):该模式与OFB模式相类似,但是它的安全性更高,因为它是以整个块(n位)的方式运行的,而不是以单个位来运行的;
·Stream Mode(流模式):是附加模式,可以支持流算法,如WAKE和RC4。


这里仅对CBC的语法做介绍:

string mcrypt_cbc(string cipher,string key,string data,int mode)

该函数有4个参数,第一个cipher表示对数据加密的算法,第二个key是为算法提供的键(密钥),第三个data是被加密的信息,最后一个mode详细说明了数据是被加密还是被解密。

Mcrypt库支持的算法有:
·DES和Triple-DES
·Blowfish
·TWOFISH
·SAFER-SK64
·3-WAY
·RC2
·GOST
·RC6
·RC4
·CAST
·IDEA
·AES

下载Mcrypt函数外部库(版本: 2.5.7 )

(我做的压缩包,内含外部库函数、安装方法及自己写的一个PHP函数)

或者到PHP官方网站提供的地址去下载:

此版本支持的加密算法:

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

支持的加密模式:

cbc cfb ctr ecb ncfb nofb ofb stream

安装方法

1.将libmcrypt.dll复制到system32目录
2.去掉;extension=php_mcrypt.dll前面的分号

重新启动Apache或IIS

我只用了CBC模式,其他的参考PHP官方网站

Mcrypt函数:

/*****************************
 * Mcrypt
 * (C)Copyright fzjw
 * Email:fzj-w@126.com
 * 2004/08/22
 ****************************/

function Mcrypt($password){
  $password = trim($password);                    //去掉空格
  $key      = "wwcec.net webmaster fzj-w";    //自定义密钥
  $password = mcrypt_cbc(MCRYPT_LOKI97,$password,$key,MCRYPT_ENCRYPT);
  $password = bin2hex($password);             //将二进制编码转换为16进制
  return $password;
}

//使用方法

$password = Mcrypt($_POST['password'])

?>

阅读(1461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~