首页 > 语言 > 关键词  > PHP实例,PHP安全编程,加密功能最新资讯  > 正文

PHP实例:PHP安全编程之加密功能

2008-11-18 17:59 · 稿源:code-123.com

预备知识

在详细介绍PHP的安全功能之前,我们需要花

点时间来向没有接触过这方面内容的读者介绍一些有关密码学的基本知识,如果对密码学的基本概念已经非常熟悉,就可以跳过去这一部分。

密码学可以通俗地被描述为对加/解密的研究和实验,加密是将易懂的资料转换为不易懂资料的过程,解密则是将不易懂的资料转换为原来易懂资料的过程。不易懂的资料被称作密码,易懂的资料被称作明码。

数据的加/解密都需要一定的算法,这些算法可以非常地简单,如著名的凯撒码,但当前的加密算法要相对复杂得多,其中一些利用现有的方法甚至是无法破译的。

PHP的加密功能

只要有一点使用非Windows平台经验的人可能对crypt()也相当熟悉,这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能够将密码转换为原来的明码。尽管从表面上来看这似乎是一个没有什么用处的功能,但它的确被广泛用来保证系统密码的完整性。因为,单向加密的口令一旦落入第三方人的手里,由于不能被还原为明文,因此也没有什么大用处。在验证用户输入的口令时,用户的输入采用的也是单向算法,如果输入与存储的经加密后的口令相匹配,则输入的口信一定是正确的。

PHP同样提供了使用其crypt()函数完成单向加密功能的可能性。我将在这里简要地介绍该函数:

string crypt (string input_string [, string salt])

其中的input_string参数是需要加密的字符串,第二个可选的salt是一个位字串,它能够影响加密的暗码,进一步地排除被称作预计算攻击的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用的是MD5(我将在以后介绍MD5算法),它会使用一个12个字符的干扰串。顺便说一下,可以通过执行下面的命令发现系统将要使用的干扰串的长度:

print "My system salt size is: ". CRYPT_SALT_LENGTH;

系统也可能支持其他的加密算法。crypt()支持四种算法,下面是它支持的算法和相应的salt参数的长度:

算法 Salt长度

以下为引用的内容:

CRYPT_STD_DES 2-character (Default)
CRYPT_EXT_DES 9-character
CRYPT_MD5 12-character beginning with 102/td>
CRYPT_BLOWFISH 16-character beginning with 102/td>

用crypt()实现用户身份验证

作为crypt()函数的一个例子,考虑这样一种情况,你希望创建一段PHP脚本程序限制对一个目录的访问,只允许能够提供正确的用户名和口令的用户访问这一目录。我将把资料存储在我喜欢的数据库MySQL的一个表中。下面我们以创建这个被称作members的表开始我们的例子:

以下为引用的内容:

mysql>CREATE TABLE members (
->username CHAR(14) NOT NULL,
->password CHAR(32) NOT NULL,
->RIMARY KEY(username)
->);

然后,我们假定下面的数据已经存储在该表中:

以下为引用的内容:

用户名 密码
clark keloD1C377lKE
bruce ba1T7vnz9AWgk
peter paLUvRWsRLZ4U

这些加密的口令对应的明码分别是kent、banner和parker。注意一下每个口令的前二个字母,这是因为我使用了下面的代码,根据口令的前二个字母创建干扰串的:

以下为引用的内容:

.
= substr(, 0, 2);
= crypt(, );
// 然后就和用户名一起存储在MySQL中

我将使用Apache的口令-应答认证配置提示用户输入用户名和口令,一个鲜为人知的有关PHP的信息是,它可以把Apache的口令-应答系统输入的用户名和口令识别为和,我将在身份验证脚本中用到这二个变量。花一些时间仔细阅读下面的脚本,多注意一下其中的解释,以便更好地理解下面的代码:

举报

  • 相关推荐
  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • 苹果搞定量产问题!iPhone 17 Pro将首发屏幕抗刮抗反射涂层

    据MacRumors最新报道,苹果公司已解决屏幕抗刮抗反射涂层的生产问题,有望率先应用在iPhone 17 Pro和iPhonePro Max上。 据悉,苹果去年就曾有这个计划,但是后来量产工艺遇到问题,一度被传取消该计划。 当时消息称,为iPhone显示屏添加防反射涂层的过程太慢了,达不到苹果巨大的量产需求。 如今,苹果已经联合供应商改进了工艺,解决了量产问题,iPhone 17 Pro系列可以实现规�

  • 外观大改!iPhone 17系列4款机型全配色曝光

    据分析机构预测,iPhone 17系列将于本月开始试生产,8月份开始量产,并于9月份正式发布。 今年苹果会发布iPhone 17、iPhone 17 Air、iPhone 17 Pro、iPhone 17 Pro Max四款机型。 科技媒体Macworld最新报道称,在苹果内部文件中看到了iPhone 17全系机型的配色,带来了以往从没用过的新配色。

  • iPhone 17系列重回铝合金中框:仅iPhone 17 Air保留钛合金

    据知名分析师Jeff Pu介绍,苹果将在iPhone 17系列重回铝合金中框,只有iPhone 17 Air保留钛合金中框。 苹果在2017年的iPhone X上首次开始使用不锈钢,并且在Pro机型上延续到iPhone 14 Pro,而后又在iPhone 15 Pro开始使用钛合金。 如今看来,钛合金成为苹果最快抛弃的材质。 iPhone 17 Air选择钛合金中框也是迫不得已,因为该机厚度在6mm以内,而钛合金的强度、硬度、韧性、抗拉强度、抗伸

  • iPhone 17 Pro/Pro Max大曝光:比16 Pro多了一款配色

    随着iPhone 17系列发布时间的临近,有关这款新品的细节陆续被曝光。 最新爆料显示,iPhone 17 Pro、iPhone 17 Pro Max共有5款配色,比iPhone 16 Pro系列多了一款。 具体来说,iPhone 17 Pro系列提供黑色、灰色、银色、深蓝色和橙色五种配色,而iPhone 16 Pro系列提供沙漠色、原色、白色和黑色,从爆料来看,iPhone 17 Pro系列配色中最具辨识度的是深蓝色。

  • PhotonPay光⼦易推出实体万事达卡商务信用卡,拓展全球企业多元⽀付场景

    光子易(PhotonPay)与万事达卡合作推出实体商务信用卡,覆盖全球210个国家和地区的1.5亿商户网络,支持线上线下全场景支付。该卡直连光子易多币种账户,具备ATM提现功能,可自定义币种、限额等参数,实时同步智能对账系统,提升企业跨境支付效率和财务管理透明度。作为持牌跨境支付服务商,光子易通过数字化基础设施与万事达全球支付网络的深度整合,解决了传统跨境支付流程繁琐、汇率波动等痛点,助力企业实现"一卡在手,全球支付可视可控"的数字化管理。公司已服务超20万家出海企业,并获得多项国际发卡资质认证。

  • 苹果iPhone 17 Pro系列四配色渲染图出炉:史上首款橙色登场

    据majinbuofficial爆料,结合配件厂商和知情人士的消息,确认今年iPhone 17 Pro系列降提供四款配色可选,与前代保持一致。 具体配色是黑色、深蓝色、银色、橙色,其中橙色是iPhone Pro系列有史以来第一次使用。 爆料对四款配色的描述如下: 黑色:经典且优雅,类似此前型号中的黑色钛金属,但采用磨砂处理,增加优雅感并减少指纹可见度。 深蓝色:一种深到几乎夜幕般的色�

  • TECNO发布全球最薄三折概念机PHANTOM Ultimate G Fold

    TECNO发布PHANTOM Ultimate G Fold概念机,采用创新双屏内折设计,配备9.94英寸柔性大屏,折叠状态下厚度仅11.49mm,展开后最薄处3.49mm,刷新三折手机轻薄纪录。其核心创新在于独特的G型三折结构,通过左右双内折实现屏幕完全内藏保护,并配备外屏保证折叠状态下的常规使用体验。该机采用精密双铰链系统,支持多角度悬停,搭配2000MPa高强度钢铰链和0.3mm超薄钛纤维背板,兼顾强度与轻薄。量产版将搭载高性能芯片、多焦段三摄系统和超5000mAh电池,重新定义旗舰折叠屏体验。

  • 苹果留了一手!iPhone 17 Air 12GB内存速度不及Pro版

    据爆料,iPhone 17标准版配备8GB内存,iPhone 17 Air、iPhone 17 Pro和iPhone 17 Pro Max配备12GB内存。 虽然17 Air和17 Pro系列都是12GB内存,但最新爆料显示,这两者的内存规格并不相同,Pro版的内存明显更好。 具体来说,iPhone 17 Air配备12GB LPDDR5内存,17 Pro和17 Pro Max则是配备12GB LPDDR5X内存。 据悉,LPDDR5X是LPDDR5的升级版,LPDDR5X的传输速率较LPDDR5更高,达到了8533Mbps,是LPDDR4X的两倍,是LPDDR5�

  • 苹果首款折叠屏iPhone参数曝光:首发自研C2基带

    近日,瑞银分析师透露了苹果公司即将推出的折叠屏iPhone的详细参数规格,引发市场广泛关注。据介绍,这款备受期待的折叠屏iPhone将搭载全新的A20Pro芯片,并首次采用苹果自研的基带芯片C2,标志着苹果在芯片自主研发领域迈出了重要一步。 在存储配置方面,折叠屏iPhone将提供12GB内存,以及256GB、512GB和1TB三种存储容量选择,满足不同用户的需求。屏幕方面,该机内屏尺寸�