PHP加密解密
PHP加密解密
计应134 凌豪
1.使用crypt()函数进行加密
crypt()函数可以完成单向加密功能,语法如下:
string crypt(string str[, string salt]);
其中,str参数是需要加密的字符串,salt参数为加密时使用的干扰串。如果省略掉第二个参数,则会随机生成一个干扰串。crypt()函数支持4种算法和长度,如表所示。
声明一个字符串变量$str,赋值为“This is test”,然后用crypt()函数进行加密并输出
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用crypt()函数进行加密</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
body {
margin-left: 10px;
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
}
-->
</style></head>
<body>
<?php
$str ='This is test!'; //声明字符串变量$str
echo '加密前$str的值为:'.$str;
$crypttostr = crypt($str); //对变量$str加密
echo '<p>加密后$str的值为:'.$crypttostr; //输出加密后的变量
?>
</body>
</html>
2.使用md5()函数进行加密
md5()函数使用MD5算法。MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),它的作用是把不同长度的数据信息经过一系列的算法计算成一个128位的数值,就是把一个任意长度的字节串变换成一定长的大整数。注意这里是“字节串”而不是“字符串”,因为这种变换只与字节的值有关,与字符集或编码方式无关。md5()函数的格式如下:
string md5 ( string str [, bool raw_output] );
其中字符串str为要加密的明文,raw_output参数如果设为true,则函数返回一个二进制形式的密文,该参数默认为false。
实现登录注册功能,并将用户密码通过MD5加密保存到数据库中其代码如下:
创建注册界面:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/style.css" rel="stylesheet" type="text/css">
<title>会员注册</title>
</head>
<body>
<div align="center">
<script language="javascript">
function register(){
if(myform.name.value=="")
{alert("会员名称不能为空!!");myform.name.focus();return false;}
if(myform.pwd.value=="")
{alert("会员密码不能为空!!");myform.pwd.focus();return false;}
}
</script>
<form name="myform" method="post" action="register_ok.php">
<table width="778" height="314" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td valign="top" background="images/reg.gif"><table width="778" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="255" height="255"> </td>
<td width="66"> </td>
<td width="125"> </td>
<td width="332"> </td>
</tr>
<tr>
<td height="31"> </td>
<td align="center">注册名称:</td>
<td><input name="name" type="text" id="name" size="16"></td>
<td> </td>
</tr>
<tr>
<td height="35"> </td>
<td align="center">注册密码:</td>
<td><input name="pwd" type="password" id="pwd" size="16"></td>
<td> </td>
</tr>
<tr>
<td height="34"> </td>
<td> </td>
<td align="right"><input name="imageField" type="image"
src="images/reg.jpg" width="87" height="24" border="0"
onClick="return register();">
</a> </td>
<td> </td>
</tr>
<tr>
<td height="87"> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</form>
</div>
</body>
</html>
创建register_ok.php
<?php
class chkinput { //定义chkinput类
var $name; //定义成员变量
var $pwd; //定义成员变量
function chkinput($x, $y) { //定义成员方法
$this->name = $x; //为成员变量赋值
$this->pwd = $y; //为成员变量赋值
}
function checkinput() { //定义方法,完成用户注册
include "conn/conn.php"; //通过include调用数据库连接文件
$info = mysql_query ( "insert into tb_user(user,password)value('" . $this->name . "','" . $this->pwd . "')" );
if ($info == false) { //根据添加操作的返回结果,给出提示信息
echo "<script language='javascript'>alert('会员注册失败!');history.back();</script>";
exit ();
} else {
$_SESSION [admin_name] = $this->name; //注册成功后,将用户名赋给SESSION变量
echo "<script language='javascript'>alert('恭喜您,注册成功!');window.location.href='index.php';</script>";
}
}
}
$obj = new chkinput ( trim ( $_POST [name] ), trim ( md5 ( $_POST [pwd] ) ) ); //实例化类
$obj->checkinput (); //根据返回对象调用方法执行注册操作
?>
3.使用sha1()函数进行加密
和MD5类似的还有SHA算法。SHA全称为Secure Hash Algorithm(安全哈希算法),PHP提供的sha1()函数使用的就是SHA算法,函数的语法如下:
string sha1 ( string str [, bool raw_output] )
函数返回一个40位的十六进制数,如果参数raw_output为true,则返回一个20位的二进制数。默认raw_output为false。
下面是分别对一个字符串进项MD5和SHA加密运算,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用md5()和sha1()函数进行加密</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
body {
margin-left: 10px;
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
}
-->
</style></head>
<body>
<div align="center">
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td height="30" colspan="2" align="center" valign="middle" scope="col"><?php echo 'md5()和shal()函数的对比效果'; ?></td>
</tr>
<tr>
<td width="200" height="30" align="right" valign="middle"><?php echo '使用md5()函数加密字符串PHPER:' ?></td>
<td width="200" height="30" align="center" valign="middle"><?php echo md5('PHPER'); ?></td>
</tr>
<tr>
<td width="200" height="30" align="right" valign="middle"><?php echo '使用shal()函数加密字符串PHPER:'; ?></td>
<td width="200" height="30" align="center" valign="middle"><?php echo sha1('PHPER'); ?></td>
</tr>
</table>
</div>
</body>
</html>