仓酷云

标题: PHP教程之利用 PHP 5.5 创立和考证哈希最复杂的方... [打印本页]

作者: 简单生活    时间: 2015-1-16 22:15
标题: 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=[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
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 第二个灵魂    时间: 2015-1-21 09:07
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 仓酷云    时间: 2015-1-30 13:00
本文当是我的笔记啦,遇到的问题随时填充
作者: 简单生活    时间: 2015-2-6 12:34
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 透明    时间: 2015-2-16 03:48
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 柔情似水    时间: 2015-3-4 23:31
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 若相依    时间: 2015-3-11 21:24
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 若天明    时间: 2015-3-19 14:33
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 兰色精灵    时间: 2015-3-28 13:07
当然这种网站的会员费就几十块钱。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2