当前位置: 电脑软硬件应用网 > 设计学院 > 图像处理 > 正文 |
|
|||
在PHP中的加密 | |||
2005-12-30 19:28:47 文/45IT收集 出处:电脑软硬件应用网 | |||
PHP提供了使用其crypt()函数完成单向加密功能的可能性。 string crypt (string input_string [, string salt]) 其中的input_string参数是需要加密的字符串,第二个可选的salt是一个位字串,它能够影响加密的暗码,进一步地排除被称作预计算攻击的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用的是MD5,它会使用一个12个字符的干扰串。顺便说一下,可以通过执行下面的命令发现系统将要使用的干扰串的长度: 算法 Salt长度 作为crypt()函数的一个例子,考虑这样一种情况,你希望创建一段PHP脚本程序限制对一个目录的访问,只允许能够提供正确的用户名和口令的用户访问这一目录。我将把资料存储在我喜欢的数据库MySQL的一个表中。下面我们以创建这个被称作members的表开始我们的例子: 这些加密的口令对应的明码分别是kent、banner和parker。注意一下每个口令的前二个字母,这是因为我使用了下面的代码,根据口令的前二个字母创建干扰串的: $host = "localhost"; // Set authorization to False mysql_pconnect($host, $user, $pswd) or die("Can't connect to MySQL server!"); mysql_select_db($db) or die("Can't select database!"); // Perform the encryption $query = "SELECT username FROM members WHERE // confirm authorization 下面介绍另一个PHP支持的函数━━md5(),这一函数使用MD5散列算法,它有几种很有趣的用法值得一提:一个混编函数可以将一个可变长度的信息变换为具有固定长度被混编过的输出,也被称作“信息文摘”。这是十分有用的,因为一个固定长度的字符串可以用来检查文件的完整性和验证数字签名以及用户身份验证。由于它适合于PHP,PHP内置的md5()混编函数将把一个可变长度的信息转换为128位(32个字符)的信息文摘。混编的一个有趣的特点是不能通过分析混编后的信息得到原来的明码,因为混编后的结果与原来的明码内容没有依赖关系。 即便只改变一个字符串中的一个字符,也将使得MD5混编算法计算出二个截然不同的结果。我们首先来看下表的内容及其相应的结果: 结果: 注意,结果的长度为32个字符。再来看一下下面的表,其中的$msg的值有了一点微小的变化: 使用md5()对一个稍微变化的字符串进行混编 结果: 尽管crypt()和md5()各有用处,但二者在功能上都受到一定的限制。 |
|||
最新热点 | 最新推荐 | 相关文章 | ||
设计理论:可用性设计的10个准则 设计理论:质感高光基础入门 I 平面设计中的常用字库种类说明 关于色彩中“纯度”概念的讨论 三维设计专用技术名词解释 超酷黄金喜字 Photoshop的动作命令和批处理命令 轻松几步将美女照片处理为手工素描 巧用Photoshop滤镜模拟水粉花卉效果 打造照片朦胧梦幻效果 |
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |