文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网站建设经验技巧PHP数据加密
精品推荐
特别推荐
·最受欢迎的网管工具集
·ADSL登录是错误,出现691是什么意思
·网站建设中的常用代码
·Web搜索引擎设计和实现分析
·网页心得:网页色彩的搭配
·网页颜色搭配的技巧
·网站上传方法汇总
·最大限度优化博客文章
·基本的页面设计元素布局比例
·网站策划书实例
·应用网页标准制作网站的几点好处
·网页设计心得:页面布局的简单规则
·注意:网页标题和网页Meta的写法
·网管员在日常维护局域网时的几点注意事项
·常用网页使用js技巧收集(200多个)
·WEB开发碰到的问题及经验十八则
·网页设计文字大小相关的四种设置方法
·怎样制作网页?
·谈论做网站的理念与技术
·“口碑营销”的关键问题是在效率
热点TOP10
·最受欢迎的网管工具集
·知道对方的ip地址,如何查具体物理地址?
·怎样制作网页?
·轻松去除视频中自动弹出网页
·网页设计心得:页面布局的简单规则
·网管员在日常维护局域网时的几点注意事项
·制作网站的步骤和方法
·鼠标悬停显示标题等效果 JS+CSS
·EditPlus使用指南
·网页摹仿和抄袭的心得论
·电子杂志设计制作中的新技术整合运用
·网页制作,改变你的思维方式
·首页设计所应该达到的几个设计
·谈谈网页制作之网页布局
·网页登录界面设计需要注意的几个问题
·从交互设计的角度说用户登录
·太创意了!让人称绝的404错误页面
·网站的设计思考
·PHP环境配置介绍
·详解网站建设全过程(网络创业必读)

PHP数据加密

日期:2005年10月31日 作者: 查看:[大字体 中字体 小字体]


PHP数据加密 数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量 交易和传输的大量数据。如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能。在本篇文章中,我们将介绍这些 功能,提供一些基本的用法,以便你能够为自己的应用软件中增加安全功能。

预备知识

在详细介绍PHP的安全功能之 前,我们需要花点时间来向没有接触过这方面内容的读者介绍一些有关密码学的基本知识,如果对密码学的基本概念已经非常熟悉,就可以跳 过去这一部分。

密码学可以通俗地被描述为对加/解密的研究和实验,加密是将易懂的资料转换为不易懂资料的过程,解密 则是将不易懂的资料转换为原来易懂资料的过程。不易懂的资料被称作密码,易懂的资料被称作明码。

数据的加/解密都需 要一定的算法,这些算法可以非常地简单,如著名的凯撒码,但当前的加密算法要相对复杂得多,其中一些利用现有的方法甚至是无法破译的 。


PHP的加密功能

只要有一点使用非Windows平台经验的人可能对crypt()也相当熟悉,这一函数完成被称作单向加密 的功能,它可以加密一些明码,但不能够将密码转换为原来的明码。尽管从表面上来看这似乎是一个没有什么用处的功能,但它的确被广泛用 来保证系统密码的完整性。因为,单向加密的口令一旦落入第三方人的手里,由于不能被还原为明文,因此也没有什么大用处。在验证用户输 入的口令时,用户的输入采用的也是单向算法,如果输入与存储的经加密后的口令相匹配,则输入的口信一定是正确的。

PHP同样提供了使用其crypt()函数完成单向加密功能的可能性。我将在这里简要地介绍该函数:

string crypt (string input_string [, string salt])

其中的input_string参数是需要加密的字符串,第二个可选的salt是一个位字串,它能够影响 加密的暗码,进一步地排除被称作预计算攻击的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用的是MD5(我将在 以后介绍MD5算法),它会使用一个12个字符的干扰串。顺便说一下,可以通过执行下面的命令发现系统将要使用的干扰串的长度:

print "My system salt size is: ". CRYPT_SALT_LENGTH;
系统也可能支持其他的加密算法。crypt()支持四 种算法,下面是它支持的算法和相应的salt参数的长度:

算法      Salt长度
CRYPT_STD_DES 2-character (Default)
CRYPT_EXT_DES 9-character
CRYPT_MD5   12-character beginning with $1$
CRYPT_BLOWFISH 16-character beginning with $2$


用crypt()实现用户身份验证

作为crypt()函数的一个例子,考虑这样一种情况,你希望创建一段PHP脚本程序限 制对一个目录的访问,只允许能够提供正确的用户名和口令的用户访问这一目录。我将把资料存储在我喜欢的数据库MySQL的一个表中。下面我 们以创建这个被称作members的表开始我们的例子:

mysql>CREATE TABLE members (
->username CHAR(14) NOT NULL,
->password CHAR(32) NOT NULL,
->PRIMARY KEY(username)
->);

然后,我们假定下面的数据已经存储在该表中:

用户名 密码
clark keloD1C377lKE
bruce ba1T7vnz9AWgk
peter paLUvRWsRLZ4U

这些加密的口令对应的明码分别是kent、banner和parker。注意一下每个口令的前二个字母, 这是因为我使用了下面的代码,根据口令的前二个字母创建干扰串的:

$enteredPassword.
$salt = substr($enteredPassword, 0, 2);
$userPswd = crypt($enteredPassword, $salt);
// $userPswd然后就和用户名一起存储在MySQL 中

我将使用Apache的口令-应答认证配置提示用户输入用户名和口令,一个鲜为人知的有关PHP的信息是,它可以把Apache 的口令-应答系统输入的用户名和口令识别为$PHP_AUTH_USER和$PHP_AUTH_PW,我将在身份验证脚本中用到这二个变量。花一些时间仔细阅读下 面的脚本,多注意一下其中的解释,以便更好地理解下面的代码:

crypt()和Apache的口令-应答验证系统的应用

$host = "localhost";
$user = "zorro";
$pswd = "hell odolly";
$db = "users";

// Set authorization to False

$authorization = 0;

// Verify that user has entered username and password

if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) :

[1] [2] [3] [4] 下一页 




上一篇:中国十大名茶

下一篇:vbulletin 3.0.x PHP代码执行漏洞

PHP数据加密 相关文章:
·在PB中如何实现数据模糊查询
·内网数据库服务器入侵实战
·EasyRecovery 604硬盘数据恢复软件技巧
·全程攻击无线网络WEP加密(一)
·PowerBuilder数据录入同步显示
·导出数据到Excel概述
·Windows XP中的数据保护和恢复二(组图)
·破解U盘加密工具的加密原理
·加密视频光盘轻松刻录教你做
·RS-485串行数据通信协议及其应用
PHP数据加密 相关软件:
·最强文件加密锁2007
·东南大学SQL数据库基础视频教学全42讲 CSF 详见查看
·逐步精通数据库 sql server 视频教程
·ACCESS数据库教程 北京大学的ACCESS教程
·SQL/MYSQL/数据库教程专栏
·超白金文件加密 V9.11
·电子商务互联网数据库试卷
·06年9月等级考试三级数据库技术试题
·CASP.NET以及数据库的一些电子书,初次做种
·微软数据库开发梦工场简体中文版多媒体教学光盘-ORACLE

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot