admin 管理员组文章数量: 1086019
2024年4月25日发(作者:一个变量的指针是指)
电脑编程技巧与维护
PHP网站加密技术及其应用
吴晓刚
(兴义民族师范学院,贵州兴义562400)
摘要:随着网络与网站技术的发展,数据加密在企业信息网络中的应用越来越广。针对PHP数据加密的特点,
探讨了PHP内置的加密函数crypt 0、md5 0以及扩展库一Mcrypt、Mhash在身份验证等网络安全中的应用。
关键词:PHP;加密技术;身份验证
The Encryption Technology of PHP for Website and its Application
WU Xiaogang
(Dept of Computer Science,Xingyi Normal University for Nationalities,Guizhou Xingyi 562400)
Abstract:With the development of the Web S technology,the data encryption in the enterprise S information network has
more and more applications.The PHP built-in encryption function—crypt()、rod5 0 and application of PHP's extension
library—Mcrypt and Mhash are discussed in authentication and network security.
Key words:PHP;Encryption technology;Authentication
数据加密是计算机系统中实施信息保护的一种最可靠的
方法…。为了保证网络交易和数据传输的安全,数据加密技术
使用一定的算法对信息进行加密,将明文转变为密文,实现
Stirng指输入计算的字符串。raw可选,规定十六进制或
二进制输出格式。
例:<?php
Sstrin=“Hello,PHP world!”;
信息隐蔽,从而起到保护信息安全的作用。动态网站技术
PHP脚本语言提供的一系列安全功能,主要探讨了PHP内置
的加密与编码技术及其在网站安全中的应用。
¥out=rod5(¥strin);
print”输出:¥out”:
?>
1 PHP加密与编码函数
PHP提供了单向加密crypt 0、散列MD5、数据编码与解
码base64
encode/base64
decode等内置函数[21。
结果输出:7996b5e0804042fd53 1907a4900f190e
1.3 base64
_
encode与base64一decode
_
1.1 crypt 0函数及用法
base64
_
encode 0返回使用base64对数据的编码。这种
crypt()函数是个单向加密函数,可以将明码转换为密
编码是为了使二进制数据可以通过非纯8_bit的传输层传输,
例如电子邮件的主体。base64一encoded数据妥比原始数据多
占用33%左右的空间。
码,即使加密后的口令落入第二三方,由于其单向性,不能被
还原为明文,所以保证了口令的安全。在用户输入口令时采
用此单向算法与存储在服务器上经加密后的口令匹配,来判
函数格式:stirng base64一encode(stirng¥data)
例:<?php
¥str=- This is an encoded string ;
echo base64
encode(Sstr);
_
断用户口令是否正确。
crypt()函数格式:string crypt(stirng input,stirng【,
stirng salt])
?>
其中参数input_stirng指需要加密的字符串,参数salt是
可选的一个位字串,用于增加被编码字符数目的字符串,以
使编码更加安全,如果未提供salt参数,则每次调用该函数
时会随机生成一个。
例:<?php
echo”Standard DES:”.crypt(”hello world”).”
>”:
输出:VGhpcyBpcyBhbiBlbmNvZGVklHN0cmluZw==
2 PHP加密与身份验证技术
身份验证与加密算法是Web中最常见安全技术,PHP内
置了身份验证141的功能。以下介绍几种基本的身份验证与加
<br/
密方法。
2.1用crypt 0实现用户身份验证
使用PHP脚本程序对文件目录进行访问控制,只允许正
确的用户名和口令的用户访问。数据库MySQL中创建一个
members表:
mysql>CREATE TABLE members(
?>
输出:Standard DES:¥15r35.Y52.¥iyiFuvM.zFGsscpU0aZ4e.
1.2 MD5散列函数
MD5散列函数输出“消息摘要”[31,用来检查文件的完整
性、数字签名验证、用户身份验证等。PHP内置的md5 0散
列函数将一个可变长度的信息转换为128位(32个字符)的
消息摘要。
语法:md5(stirng,raw)
作者简介:吴晓刚(1970一),男,讲师,硕士,研究方向
信息安全与密码学。
收稿日期:2011-06—10
与雏
COMPUTING SECURITY TECHNIQUES
一
计算机安全技术
header(‘HTTP/1.0 401 Unauthorized’);
exit;
>username CHAR(14)NOT NULL,
一
>password CHAR(32)NOT NULL,
-
>PRIMARY KEY(usemame)
>);
}
if(!isset(¥_SERVER【‘PHP—AUTH_USER’】))f
authenticate
user();
_
一
用户名和密码数据已经存储在该表中,并且加密的口令
对应其明码。根据口令的前2个字母创建干扰串:¥entered—
}else{
Password.
¥sah=substr(¥enteredPassword,0,2);
¥userPswd=crypt(¥enteredPassword,¥salt);
crypt 0函数的缺省状态并不是最安全的,如果需要较高
的安全性能,需要使用MD5散列算法。
2.2基于文件的身份验证
利用文本文件存储用户名和加密密码对,注意该文件应
当储存在服务器文件栏根目录之外,避免强力猜测发现此文
件,另外口令采用MD5加密,增大安全性。例如:authorpass.
txt中内容:
jack:39dksowweld030390924438783409234o
mike:Osdklsd92300一wweoewlfdkdsfsdkkeiiwe
andy kddi8023ks;929ssjsdkqjhdkds4I葛738w8
代表3个用户名和密码。
解析authorpass.txt文件的PHP验证代码如下:
<?php
¥authorized=false;
if(isset(S_SERVER[‘PHP_AUTH_USER’】)&&
isset(S_SERVER【‘PHP_AUTH_PW’]))
f¥authfile=file(“/local/lib/php/authorpass.txt”);
if(in_array(S_SERVER【‘PHP
_
AUTH
USER’】.”:”
.
Md5(¥_SERVER【‘PHP_AUTHPW’】).”\n”,¥auth—
File))
¥authorized=Ture;
}
if(!¥authorized) {
header r‘WWW-authenticate:Basic Realm=”Secret
Stash”’);
header(‘HTTP,1.0 401 Unauthorized’);
print(‘请输入正确的帐户密码’);
exR;
l
2.3基于数据库的身份验证
基于数据库的身份验证不仅改善了管理的方便性,提高
了可扩展性,而且可以集成到更大的数据库基础设施中。实
例步骤:在数据库表创建表login包含3个字段id、usemame、
password,插入数据:
1 zhangsan 09328sk183gdq3924hb7fdk33fghoki3
2 lishi 8eisf02y8735i372d8ij4365jlg9wq824
3 mike 3dr39v4hb7f8ij4365jlg92y8735i qu5
数据库的身份验证的PHP代码:
<?php
function authenticate
_
user() {
header r‘WWW—authenticate:Basic realm=”Secret
Stash”’):
mysql
_
pconnect(“localhost”,“authenticator”,“secret”)
or die(“Can’t connect to database server!”);
mysqlselect
_
db(“corporate”)
or ted(“Can’t select database!”);
¥query=”select usemame,password from userauth
where usemame=’S
_
server[php—auth_user】'and
password=MD5(S_server[php_auth_pw],)”;
¥result=mysql
_
query(¥query);
if(mysql_num_row(¥result):=0) {
authenticate
user();
)else f echo“登录成功”;
}}
?>
3 扩展库
3.1安装
标准的PHP安装过程中并没有把Mrcypt安装上,但PHP
的主目录下包含了Mcrypt和Mhash的两个扩展库文件:libm—
crypt.dll和libmhash.dll。将这两个文件复制到系统目录win—
dows ̄system32下,然后在PHP.ini文件中将语句“;exten—
sion=php-mcrypt.dll”和“;extension=php_mhash.dll”前面的
“
;”去掉,保存并重启Apache服务器即可生效。
3.2实例应用
Mcrypt库支持20多种加密算法和8种加密模式,具体可
以通过函数mcrypLlisLalgorithms()和mcryptjisLm0des()
来显示。
(1)实例3—2数据加密mcrypt_enerypt()与数据解密
merypt_decrypt 0函数应用:
<?php
¥str=”我的名字是?一般人我不告诉他!.t;//力Ⅱ密内容
¥key=”key:lll”;//密钥
¥cipher=-MCRYPT
DES;//密码类型
¥modes=MCRYPT
_
MODE
ECB;// ̄码模式
¥iv=mcrypt_createiv(mcrypt_get_iv_size
(¥cipher,¥modes),MCRYPT
RAND);//初始化向量
echo”加密明文:”.¥str.”<p>”;
¥s ̄_encrypt=mcrypt
encrypt(¥cipher,
¥key,¥str,Smodes,¥iv);//)Jn密函数
echo”加密密文:”.¥str_encrypt.”<p>”;
¥str
decrypt=mcrypt
decrypt(¥cipher,
¥key,¥str_encrypt,Smodes,¥iv);//解密函数
echo”还原:”.¥str_decrypt;
?>
(2)实例3—3扩展库Mhash应用
<?php
¥hash
alg=MHASH
_
TIGER;
Smessage=”These ale hte directions to the secret fort.
臻
篓
电脑编程技巧与维护
Two steps left,three steps right,and cha chacha.”;
参考文献
[1】杨波.现代密码学[M】.北京:清华大学出版社,2007.
[2】W3sehoo1.PHPerypt().[DB/OL].http://www.w3sehoo1.COn1.
cn/php/func
string crypt.asp.
¥hashed
message=mhash(¥hash—alg,¥message);
—
echo”hashed:”.bin2hex(¥hashed~message);
?>
(3)执行本程序输出结果
Hashed:07a92a4db3a4177fl9ec9034ae5400eb60dla9fob4ade461
【3]Douglas R.Stinson.密码学原理与实践【M】.冯登国,译.
北京:电子工业出版社,2003.
[4]W.Jason Gilmore.PHP与PHP程序设计[M].朱涛江,译.
北京:人民邮电出版社,2009.
【5]曹衍龙,赵斯思.PHP网络编程技术与实例[M】.北京:
人民邮电出版社,2006.
4 结语
PHP内置的单向加密函数crypt 0和md5 0在功能上有
一
定的限制,而PHP的加密扩展库Mcrypt和Mhash提供了更
全而加密与解密方法。PHP是一种服务器端技术,因此要考
虑到服务器和客户端之间数据传输安全问题l 5l。在实际的PHP
网站加密应用中,需要配合Apache~SSL或其他的安全服务器
的布置来实现一个更完整的安全应用。
_I 、 ∞¥ e≈ 0、 ¨ ∞∞ ≈ ∞∞ ¥ t ∞ 、 、∞ 、∞∞ %、、 ∞H∞ e 、 ∽ e≈ ∞∞¥ t0、 、
(上接第106页)
图形,如图3所示。
6 结语
通过实例介绍了如何在Delphi程序中调用GForcal及几个
Forcal扩展库,动态绘制函数图形,并着重讨论了加载GFo
cal及扩展库的基础技术问题。本程序对数据的动态采集及显
示有重要的参考意义。
参考文献
【1]王禄.在程序中加入Forcal脚本支持[J】.电脑编程技巧与
维护,2011,(7):82—86.
图3 Foreal动态绘制的二曲线图形
(上接第111页)
IF非自有资金占年末货币资金的比重:2 AND
自有资金动用程度=2
THEN财务状况=2
为了得到更有价值的数据,对决策树进行了分析和评估,
结果如表3所示。
表3决策树正确识别率统计表(40条)
样本类别
财务失败
及早做好预防工作,避免财务危机。采用此算法分析的这也
是数据挖掘技术在财务领域的一个新型发展。
参考文献
【I]MARGARET H.DUNHAM.数据挖掘教程[M].郭崇慧,
田风占,靳晓明,等,译.北京:清华大学出版社,2005.
[2]杨周复,施建军.大学综合评价研究【M】.北京:中国人
民大学出版社,2002.
【3】JIAWEI HAN,MICHELINE KAMBER.Data Mining and
Techniques[M].Morgan Kaufmann publishers,2000.
样本数 错误识别数
8 1
正确率
87.5%
平均识别率
80% 财务危险
财务良好
9
23
3
4
66.7%
82.6%
从表3中可以看出,决策树的整体识别率较高,但是财
务危险的正确率较低,主要是因为财务危险的临界点比较难
判断,区间划分存在一定的偏差。
[4]Richard J Roiger,Michael W Geatz.数据挖掘教程【M】.
翁敬农,译.北京:清华大学出版社,2003.
[6]周根贵.数据仓库与数据挖掘【M】.浙江:浙江大学出版
社,2004.
3 结语
综上所述,在此研究了将数据挖掘技术应用于高校财务
预警分析中,运用决策树c4.5算法对高校财务状况的数据进
行分析,经过决策判断出财务失败和财务危险的高校,使其
、
[7]李文峰,黄席椒.c4.5算法在国防生素质分析中的应用
fJ],自动化技术与应用,2007,26(7):37—40.
电赢20i1i隧1.躺16
124
:
,
。
与
ii;
版权声明:本文标题:PHP网站加密技术及其应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714028912a662204.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论