数据加密是计算机系统中实施信息保护的一种最可靠的方法,身份验证与加密算法是Web中最常见安全技术,PHP内置了身份验证的功能。针对PHP数据加密的特点,以下介绍几种基本的身份验证与PHP加密。
PHP加密与身份验证技术
用crypt()实现用户身份验证
使用PHP脚本程序对文件目录进行访问控制,只允许正确的用户名和口令的用户访问。数据库MySQL中创建一个members表:
mysql>CREATE TABLE members(2021010.9.16
->username CHAR(14)NOT NULL,
->password CHAR(32)NOT NULL,
->PRIMARY KEY(username)->);
用户名和密码数据已经存储在该表中,并且加密的口令对应其明码。根据口令的前2个字母创建干扰串:
$entered-Password
$salt=substr($enteredPassword,0,2);
$userPswd=crypt($enteredPassword,$salt);
crypt()函数的缺省状态并不是最安全的,如果需要较高的安全性能,需要使用MD5散列算法。
基于文件的身份验证
利用文本文件存储用户名和加密密码对,注意该文件应当储存在服务器文件栏根目录之外,避免强力猜测发现此文件,另外口令采用MD5加密,增大安全性。例如:authorpass.txt中内容:
Jack:39dksowweld030390924438783409234o
Mike:0sdklsd92300-wweoewlfdkdsfsdkkeiiwe
Andy:jkddi8023ks;929ssjsdkqjhdkds4rs738w8
代表3个用户名和密码。
解析authorpass.txt文件的PHP加密验证代码如下:
基于数据库的身份验证
基于数据库的身份验证不仅改善了管理的方便性,提高了可扩展性,而且可以集成到更大的数据库基础设施中。