首頁 >後端開發 >php教程 >PHP加密函數—crypt()函數加密用法實例

PHP加密函數—crypt()函數加密用法實例

黄舟
黄舟原創
2017-05-25 16:08:264717瀏覽

PHP加密函數—crypt()函數加密

#在介紹加密函數之前,我們先介紹一下資料加密原理:就是對原來的明文件或資料按照某種演算法進行處理,使其成為不可讀的一段程式碼,通常稱之為“密文”,透過這樣的途徑來達到保護資料不被非法竊取和閱讀的目的!

在PHP中能加密資料的函式主要有:crypt()、md5()以及sha1(),還有就是加密擴充函式庫Mcrpyt和Mash。在這篇文章中,我會們先介紹使用crpyt()函數進行加密!

crypt()函數可以完成單向加密功能,是單向字串雜湊!

crypt()函數語法格式如下:

string crypt ( string $str [, string $salt ] )
#演算法 #salt長度
CRYPT_STD_DES 2-character(預設)
#CRYPT_EXT_DES 9-character
#CRYPT_MD5  #12-character(以$1$開頭)
CRYPT_BLOWFISH  16-character(以$2$開頭)

#這裡要說明一下:

在預設的情況下,PHP使用一個或兩個字元的DES 幹擾串,如果系統使用的是MD5,那麼就會使用12個字符,可以透過CRYPT_SALT_LENGTH 變數來查看目前所使用的干擾串的長度!

crypt()函數實例用法:

下面我們使用一個實例,讓大家一目了然,具體程式碼如下:

<?php
header("Content-Type:text/html; charset=utf-8");
$atr = "php中文网 www.php.cn";  //声明字符串变量$atr
echo "加密之前atr的值为:".$atr;
$atr1 = crypt($atr);              //对变量$str 加密
echo "<br>加密之后str的值为:".$atr1; //输出加密后的变量
?>

輸出的結果如下:

PHP加密函數—crypt()函數加密用法實例

上面的實例執行之後,一直刷新瀏覽器,你會發現每次產生的加密結果都是不一樣的,那麼該如何進行對加密後的資料進行判斷就成了問題。 crypt()函數是單向加密的,密文不可還原成明文的,而且每次加密後的資料都是不同的,這就是 salt 參數要解決的問題了。

crypt()函數以 salt參數對明文進行加密,判斷時,對輸出的資訊再次使用相同的 salt 參數進行加密,對比兩次加密後的結果來進行判斷!

下面的實例對輸入使用者名稱進行檢查,具體程式碼如下:

<?php
header("Content-Type:text/html; charset=utf-8");
$link=mysqli_connect("localhost","root","");
$db_selected = mysqli_select_db($link,"my_db");
?>
    <form name="form1" action="" method="post">
    <input type="text" name="username" id="username" size="15">
    <input type="submit" name="Submit" value="检测">
    </form>
<?php
if(isset($_POST["username"])!=""){ 
    $usr=crypt(isset($_POST["username"]),"tm");             //对用户名进行加密
    $sql = "select * from tb_user where user = &#39;".$usr."&#39;";//生成查询语句
    $rst = mysqli_query($link,$sql);                          //执行语句,返回结果集
    if($rst){
        echo "用户名存在";
    }else{
        echo "用户名可以使用";
    }
}
?>

輸出結果如下:

PHP加密函數—crypt()函數加密用法實例

##下一篇我們將介紹如何使用MD5()函數進行加密,具體請閱讀《

PHP加密函數—md5()函數加密》!

【相關推薦】

1.相關專題推薦:《

PHP加密函數

#2.

PHP加密函數—md5()函數加密實例用法

3.

PHP加密函數—sha1()函數加密的實例用法

4.

PHP加密技術影片教學#

以上是PHP加密函數—crypt()函數加密用法實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn