仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 683|回复: 9
打印 上一主题 下一主题

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

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大部分语言的基础,不是说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=[cost=>10,2salt=>mcrypt_create_iv(22,MCRYPT_DEV_URANDOM)];将选项增加到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 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
简单生活 该用户已被删除
5#
 楼主| 发表于 2015-2-6 12:34:14 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
透明 该用户已被删除
6#
发表于 2015-2-16 03:48:46 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
柔情似水 该用户已被删除
7#
发表于 2015-3-4 23:31:46 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
若相依 该用户已被删除
8#
发表于 2015-3-11 21:24:58 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
若天明 该用户已被删除
9#
发表于 2015-3-19 14:33:19 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
兰色精灵 该用户已被删除
10#
发表于 2015-3-28 13:07:16 | 只看该作者
当然这种网站的会员费就几十块钱。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 22:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表