|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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^ |
|