PHP加密函数

来源:互联网 发布:春雨国际网络医疗 编辑:程序博客网 时间:2024/05/20 14:26

计应134(实验班) 王锐      

在PHP中能对数据进行加密的函数主要有crypt()、md5()、shal(),还有加密扩展库Mcrypt和Mash。

1、使用crypt()加密

      crypt()函数可以完成单向加密功能,语法如下:

      string crypt(sring str[,string salt]);

      其中,参数str是需要加密的字符串;参数salt为加密时使用的干扰串。

例1:

首先声明一个字符串$str,赋值为“This is an example!”,然后使用crypt()函数进行加密并输出。实例代码如下:

<?php
 $str ='This is an example!';     //声明字符串变量$str
 echo '加密前$str的值为:'.$str;
 $crypttostr = crypt($str);      //对变量$str加密
 echo '<p>加密后$str的值为:'.$crypttostr;  //输出加密后的变量
?>

运行结果如图1.1所示。

                 

                                                 图1.1使用crypt()函数进行加密

例2

 对输入的用户名进行检测,如果该用户存在,显示“用户名已存在。”;否则显示“恭喜您:用户名可以使用!”。实例代码如下:

<?php

/*           数据库连接        */
 $conn = mysql_connect("localhost","root","root") or die("数据库链接错误".mysql_error());
 mysql_select_db("db_database15",$conn) or die("数据库访问错误".mysql_error());
 mysql_query("set names gb2312");
?>
  <form id="form1" name="form1" method="post" action="">
    <table border="0" cellpadding="0" cellspacing="0">
      <tr>
   <td width="100" height="30" align="right" valign="middle" scope="col">用户名:</td>
        <td width="100" height="30" align="left" valign="middle" scope="col"><label for="textfield"></label>
        <input name="username" type="text" id="username" size="15" /></td>
        <td width="100" align="center" valign="middle" scope="col"><input type="submit" name="Submit" value="检查" id="Submit" /></td>
      </tr>
    </table>
  </form>
<?php
 if(trim($_POST[username]) != ""){                                          //trim()函数去掉字符串两边的空格
  $usr = crypt(trim($_POST[username]),"tm");                        //对用户名进行加密
  $sql = "select * from tb_user where user = '".$usr."'";           //生成查询语句
  $rst = mysql_query($sql,$conn);                                           //执行语句,返回结果集
  if(mysql_num_rows($rst) > 0){                                              //如果结果集大于0
   echo "<font color='red'>用户名已存在。</font>";                //说明用户存在
  }else{                                                                                    //否则说明该用户名可用
   echo "<font color='green'>恭喜您:用户名可以使用!</font>";
  }
 }
?>

2、使用md5()函数进行加密

        md5()函数使用MD5算法。MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),她的作用是把不同长度的数据信息经过一系列的算法计算成一个128位的数值,即把一个任意长度的字节串变换成一定长的大整数。注意这里是“字节串”而不是“字符串”,因为这种变换只与字节的值有关,与字符集或编码方式无关。md5()函数的格式如下:

string md5(string str[, bool raw_output]);

       其中,字符串str为要加密的明文,raw_output参数如果设为true,则函数返回一个二进制形式的密文,该参数默认为false。

3、使用sha1()函数进行加密

      和MD5类似的还有SHA全称为Secure Hash Algorithm(安全哈希算法),PHP提供sha1()函数使用的就是SHA算法,函数对的语法如下:

string sha1(string str[, bool raw_output])

      函数返回一个40位的十六进制数,如果参数raw_output为true,则返回一个20位的二进制数。默认raw_output为false。

例3:

对一字符串分别进行MD5和SHA加密运算,实例代码如下:

<?

php echo md5('PHPER');         //使用md5()函数加密字符串PHPER

php echo sha1('PHPER);         //使用sha1()函数加密字符串PHPER

?>

MD5加密运算和SHA加密运算字符串的对比效果图如图3.1所示。

               

                                                                   图3.1  使用md5()和sha1()函数的效果对比

 

 

 

 

0 0
原创粉丝点击