PHP加密函數—crypt()函數加密用法執行個體

來源:互聯網
上載者:User
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()函數執行個體用法:

下面我們使用一個執行個體,讓大家一目瞭然,具體代碼如下:

<?phpheader("Content-Type:text/html; charset=utf-8");$atr = "php中文網 www.php.cn";  //聲明字串變數$atrecho "加密之前atr的值為:".$atr;$atr1 = crypt($atr);              //對變數$str 加密echo "<br>加密之後str的值為:".$atr1; //輸出加密後的變數?>

輸出的結果如下:

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

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

下面的執行個體對輸入使用者名稱進行檢查,具體代碼如下:

<?phpheader("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><?phpif(isset($_POST["username"])!=""){     $usr=crypt(isset($_POST["username"]),"tm");             //對使用者名稱進行加密    $sql = "select * from tb_user where user = '".$usr."'";//產生查詢語句    $rst = mysqli_query($link,$sql);                          //執行語句,返回結果集    if($rst){        echo "使用者名稱存在";    }else{        echo "使用者名稱可以使用";    }}?>

輸出結果如下:

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

【相關推薦】

1. 相關專題推薦:《PHP加密函數》

2.PHP加密函數—md5()函數加密執行個體用法

3.PHP加密函數—sha1()函數加密的執行個體用法

4.PHP加密技術視頻教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.