Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

205.2. PHP crypt()

將字元串用 DES 編碼加密。

語法: string crypt(string str, string [salt]);

返回值: 字元串

函數種類: 編碼處理

內容說明

本函數將字元串用 UNIX 的標準加密 DES 模組加密。這是單向的加密函數,無法解密。欲比對字元串,將已加密的字元串的頭二個字元放在 salt 的參數中,再比對加密後的字元串。

更詳細的資料請參考 UNIX Manual (man) 中的 crypt。

在一些較新的 UNIX 版本中,除了 DES 之外還提供了其它的加密模組,如 MD5。甚至有些系統還用 MD5 取代 DES。在 salt 參數還有一些變化,端看傳給 salt 參數的字元串長度而定:

* CRYPT_STD_DES - 標準的 DES 編碼,輸入 2 字元的 salt。
* CRYPT_EXT_DES - 延伸的 DES 編碼,輸入 9 字元的 salt。
* CRYPT_MD5 - MD5 編碼,輸入 12 字元加上 $1$ 的 salt。
* CRYPT_BLOWFISH - 延伸的 DES 編碼,輸入 16 字元加上 $2$ 的 salt。

此外,若不使用 salt 參數,則程序會自動產生。


# cat crypt.php

<html>

<p>DES 密碼</p>

<form method=post action=crypt.php>

<p>password:<input name=passwd type=text size=20></p>

<input type=submit value=submit>

</form>

<?

$enpw=crypt($passwd);

echo "password is: $enpw";

?>



[root@linux root]# wget http://netkiller.hikz.com/linux/download/myphp/site-2.1.0.tar.gz
[root@linux root]#tar zxvf site-2.1.0.tar.gz
[root@linux root]#cp –r site /usr/local/apache/htdocs
[root@linux root]#lynx http://localhost/site