简单生活 发表于 2015-1-16 22:15:04

PHP教程之利用 PHP 5.5 创立和考证哈希最复杂的方...

大部分语言的基础,不是说c有多好,而是c相对起手容易学,让你认为这个是编程语言,PHP5.5.0于今天公布,并带来了一份完全的全新特征与函数的列表。全新API之一就是PasswordHashingAPI.它包括4个函数:password_get_info(),password_hash(),password_needs_rehash(),和password_verify().让我们分步来懂得每一个函数。
我们起首会商password_hash()函数。这将用作创立一个新的暗码的哈希值。它包括三个参数:暗码、哈希算法、选项。前两项为必需的。你能够依据上面的例子来利用这个函数:
1$password=foo;2$hash=password_hash($password,PASSWORD_BCRYPT);3//$2y$10$uOegXJ09qznQsKvPfxr61uWjpJBxVDH2KGJQVnodzjnglhs2WTwHu你将注重到我们并没有给这个哈希加任何选项。如今可用的选项被限制为两个:cost和salt。妖增加选项你必要创立一个联系关系数组。
1$options=;将选项增加到password_hash()函数后,我们的哈希值变了,如许加倍平安。
1$hash=password_hash($password,PASSWORD_BCRYPT,$options);2//$2y$10$JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH6HPyCoo22如今哈希创立终了了,我们能够经由过程password_get_info()检察新建哈希值得相干信息。password_get_info()必要一个参数——哈希值——并前往一个包括算法(所用哈希算法的整数代表情势)、算法名(所用哈希算法的可读称号)和选项(我们用于创立哈希值得选项)的联系关系数组。
01var_dump(password_get_info($hash));02/*03array(3){04["algo"]=>05int(1)06["algoName"]=>07string(6)"bcrypt"08["options"]=>09array(1){10["cost"]=>11int(10)12}13}14*/先一个被增加到PasswordHashingAPI的是password_needs_rehash(),它承受三个参数,hash、hash算法和选项,前两个是必填项。password_needs_rehash()用来反省一个hash值是不是是利用特定算法及选项创立的。这在你的数据库受损必要调剂hash时十分有效。经由过程使用password_needs_rehash()反省每一个hash值,我们能够看到已存的hash值是不是婚配新的参数,仅影响那些利用旧参数创立的值。
最初,我们已创立了我们的hash值,查阅了它怎样被创立,查阅了它是不是必要被从头hash,如今我们必要考证它。要考证纯文本到其hash值,我们必需利用password_verify(),它必要两个参数,暗码及hash值,并将前往TRUE或FALSE。让我们反省一次我们取得的hashed看看是不是准确。
1$authenticate=password_verify(foo,$2y$10$JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH6HPyCoo22);2//TRUE3$authenticate=password_verify(bar,$2y$10$JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH6HPyCoo22);4//FALSE经由过程以上常识,你能够在新的PHP5.5.0版本中敏捷且平安的创立hash暗码了。
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^

乐观 发表于 2015-1-17 20:34:18

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

第二个灵魂 发表于 2015-1-21 09:07:48

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

仓酷云 发表于 2015-1-30 13:00:47

本文当是我的笔记啦,遇到的问题随时填充

简单生活 发表于 2015-2-6 12:34:14

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

透明 发表于 2015-2-16 03:48:46

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

柔情似水 发表于 2015-3-4 23:31:46

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

若相依 发表于 2015-3-11 21:24:58

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

若天明 发表于 2015-3-19 14:33:19

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

兰色精灵 发表于 2015-3-28 13:07:16

当然这种网站的会员费就几十块钱。
页: [1]
查看完整版本: PHP教程之利用 PHP 5.5 创立和考证哈希最复杂的方...