Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | Github | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

4.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