|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。加密 综述:暗码学是研讨编制暗码(咱们简称为加密:encode)和破译暗码(咱们称之为解密:decode)的手艺迷信。研讨暗码变更的客不雅纪律,使用于编制暗码以守旧通讯奥密的,称为编码学;使用于破译暗码以获得通讯谍报的,称为破译学,总称暗码学。凡是情形下,人们将可懂的文本称为明文;将明文变换成的不成懂的文本称为密文。把明文变换成密文的进程叫加密;其逆进程,即把密文变换成明文的进程叫解密。
PHP中供应了哪些数据加密功效?
PHP供应了crypt()函数完成加密功效:
string crypt (string input_string [, string salt])
这一函数完成被称作单向加密的功效,也就是说,它可以加密一些密码,但不克不及够将暗码转换为本来的密码。单向加密的口令一旦落入第三方人的手里,因为不克不及被复原为明文,因而也没有甚么大用途。在验证用户输出的口令时,用户的输出采取的也是单向算法,假如输出与存储的经加密后的口令相婚配,则输出的口令必定是准确的。
这个函数的input_string参数是需求加密的字符串,第二个参数salt是一个位字串,它可以影响加密的密码,进一步地扫除被称作估计算进击的能够性。缺省情形下,PHP利用一个2个字符的DES搅扰串,假如你的体系利用的是MD5 ,它会利用一个12个字符的搅扰串。咱们可以经由过程履行上面的号令发明体系将要利用的搅扰串的长度:
print "体系利用的搅扰串的长度是:". CRYPT_SALT_LENGTH;
crypt()撑持四种算法,上面是它撑持的算法和响应的salt参数的长度:
[注:以下用表格]
算法 Salt长度
CRYPT_STD_DES 2-character (默许)
CRYPT_EXT_DES 9-character
CRYPT_MD5 12-character beginning with $1$
CRYPT_BLOWFISH 16-character beginning with $2$
如何将PHP的数据加密功效使用于用户验证?
咱们用crypt()完成用户身份验证。好比咱们用一段PHP法式限制对一个目次的会见,只答应注册用户会见这一目次。咱们把材料存储MySQL数据库的一个表(这个数据表名为members)中:
mysql>CREATE TABLE members (
->username CHAR(14) NOT NULL,
->password CHAR(32) NOT NULL,
->PRIMARY KEY(username)
->);
然后,咱们可以输出用户的数据到该表中:
用户名 暗码
Tom keloD1C377lKE
John ba1T7vnz9AWgk
Bill paLUvRWsRLZ4U
这些加密的口令对应的密码分离是Tom、John和Bill。咱们将依据口令的前二个字母创立搅扰串:
$enteredPassword.
$salt = substr($enteredPassword, 0, 2);
$userPswd = crypt($enteredPassword, $salt);
// $userPswd然后就和用户名一同存储在MySQL 中
crypt()和Apache的口令-应对验证体系的使用
<?php
$host = "localhost"; //主机
$username = "Tom"; //用户名
$passwd = "Hello world"; //暗码
$db = "users"; //数据库名
// 设置是不是经由过程验证标记,默许为否
$authorization = 0;
// 提醒用户输出帐号和暗码
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)){
mysql_pconnect($host, $username, $passwd) or die("不克不及毗连到MySQL办事器!");
mysql_select_db($db) or die("不克不及选择数据库!");
// 停止加密
$salt = substr($PHP_AUTH_PW, 0, 2);
$encrypted_pswd = crypt($PHP_AUTH_PW, $salt);
[1] [2] 下一页
学习如何将PHP与HTML结合起来完成简单动态页面 |
|