基于php数据加密技术的研究与应用
2019-10-21徐国辉
徐国辉
摘 要:PHP语言丰富的内置函数库和良好的移植性在网站开发中发挥了极其重要的作用。本文阐述了PHP数据加密技术和PHP内置函数在开发的WEB页面中的安全保障作用。
关键词:php;加密技术;内置函数
1 PHP语言是当前web开发最热门的语言之一,其丰富的内置函数库和良好的移植性在网站开发中发挥了极其重要的作用。数据加密技术是计算机文件传输中进行安全保护的一种比较常用的策略,本文阐述了PHP数据加密技术和PHP内置函数在开发的WEB页面中的安全保障作用。
2 PHP中常见的加密技术
2.1 urlencode()函数加密技术
PHP通过GET()方法提交的信息,会以查询字符串的形式显示在浏览器的地址栏中,这样会给网站的安全带来很大的隐患,为了解决这个问题,可以对查询字符串进行URL编码。
Php中实现对查询字符串进行URL编码,可以通过urlencode()函数实现。该函数的使用格式如下:
String urlencode(string str)
该函数能够实现将字符串str进行URL编码。
下面使用urlencode()函数对课酬查询系统的“登录”字符串进行URL编码,代码如下:
接收查询字符串的值,并应用urlencode()函数对查询字符串进行编码,代码如下:
<?php echo urlencode($_GET[page]); ?> //对GET方法提交的字符串进行URL解码。
2.2 crypt()函数加密技术
在WEB程序开发过程中,可以应用PHP提供的crypt()函数来完成加密功能。crypt()函数是单向的加密函数,无法解密。经过加密的口令即使被非法获取,由于不能被还原为明文,也不会影响网站的安全性。
crypt()函数的语法格式如下:
string crypt(string str, string [salt])
参数说明:
str:是需要加密的明文字符串。
Salt:是一个位字串,能够影响加密的暗码,进一步排除被破解的可能性。默认情况下,位字串的长度为2位。若不使用salt参数,则程序会自动产生干扰串。
下面应用crypt()加密函数对字符串进行加密,代码如下:
<?php
$userpwd=”abc123”; //定义加密的密码
$str=substr($userpwd, 0, 2); //计算位字串的数值
crypt($userpwd,$str); //使用crypt()函数进行加密
?>
2.3 base64编码加密技术
PHP实现字符串的base64编码通过base64_encoded()函数实现。该函数的语法格式如下:
string base64_encode(string data)
参数data指要进行base64编码的数据。该函数的返回结果为字符串类型。
PHP实现对base64编码的字符进行解码,通过base4_decode()函数实现。该函数的语法格式如下:
string base64_ decode(string encoded_data)
参数encoded_data是指要进行base64解码的字符串。
下面应用base64编码讲解加密和解密的过程,代码如下:
<?php
$userpwd=”abc123”; //定义加密的密码
echo base64_encode($userpwd); //返回加密后的值
$userstr= base64_encode($userpwd);
//将加密后的字符赋给变量$userstr
echo base64_decode($userpwd);
//对加密的字符串进行解密
2.4 MD5加密技术
MD5是在Web应用程序中最常用的密码加密算法之一,它和crypt()函数一样也是单项加密的。MD5广泛用于数据加密技术上,在很多网站中,用户的密码是以MD5值的方式保存的,用户登录时,程序员把用户输入的密码计算成MD5值,然后再去和数据库中保存的MD5值进行比较,而程序本身并不“知道”用户的密码的真实值,从而提高了网站的安全性。
md5()函数用来计算字符串的MD5混合值。其语法如下:
String md5(string str);
<?php
$userpwd=”abc123”; //管理员密码:abc123
$mdpwd=md5($userpwd);
//将管理员密码通过md5()函数加密
?>
3 php数据加密技术的应用
本人的课酬查询系统的管理员登录模块就是采用md5()函数获取字符串加密后的值。login.php是管理员登录页面,checkinput.php应用md5()函数对用户密码进行加密,加密管理员密码的部分代码如下:
<?php
class chkinput{
var $name;
var $pwd;
function checkinput()
{
include("conn/conn.php");
$obj=new chkinput(trim($_POST[name]),md5(trim($_POST[pwd])));
$obj->checkinput();?>
login.php核心代码如下:
function checkinput(form){
if(form.pwd.value==""){
alert("请输入用户密码!");
form.pwd.select();
return(false);
}
}