在PHP中创建和验证哈希的一种简单方法

在PHP中创建和验证哈希的一种简单方法
PHP 5.5.0带来一个完整的新特性和功能列表。一个新的API密码哈希API,其中包含4个功能:password_get_info(),(),password_hash password_needs_rehash(),()和password_verify。让我们一步一步地学习每一个函数

让我们与password_hash开始()函数,这将作为创建新密码的哈希值,它包含三个参数:密码、Hash算法,和选项。第一个项目是必要的。你可以用下面的例子来使用这个功能:

密码= 'foo美元;
美元($ = password_hash哈希密码,password_bcrypt);
/ / 2y美元10美元uoegxj09qznqskvpfxr61uwjpjbxvdh2kgjqvnodzjnglhs2wtwhu
你会注意到,我们没有给Hashiga任何选项。选项现在只限于两:成本和盐。恶魔添加选项,你需要创建一个关联数组。

美元= {成本选项= > 10,
盐= mcrypt_create_iv(22,mcrypt_dev_urandom)};
添加选项后的password_hash()函数,我们的哈希值发生了变化,这是更安全。

美元($ = password_hash哈希密码,password_bcrypt,$选项);
/ / 2y美元10美元jdj5jdewjdhsthv6sgviquprrhzngqsuetlk8iem0okh6hpycoo22
现在,Hashi已经完成,我们可以看到新的哈希与password_get_info()。(password_get_info)需要一个参数,并返回一个哈希值,包括算法(用整数表示的哈希算法),算法名称(使用可读的哈希算法名称)和选项(我们用来创建一个哈希选项关联数组)。

var_dump(password_get_info($哈希));
*
数组(3){
{al}
Int(1)
{alname} = >
字符串(6)BCrypt的
{ 选项>
数组(1){
{成本}
int(10)
}
}
* /
第一个是添加到密码哈希API(password_needs_rehash),它接受三个参数,哈希,哈希算法和选项,第一个是required.password_needs_rehash()是用来检查是否一个散列值是使用特定的算法和选项创建的。这是非常有用的当你的数据库已损坏,需要被调整到哈希。利用password_needs_rehash()来检查每个哈希值,我们可以看到,无论是现有的哈希值匹配新的参数,它不仅影响了老参数创造的价值。
最后,我们创造了我们的哈希值,看它是如何产生的,看是否需要重新散列,现在我们需要核实。核实纯文本的哈希值,必须使用password_verify(),它需要两个参数,密码的哈希值,并将返回TRUE或FALSE。让我们检查散列我们要看它是否正确

为验证= password_verify('foo ',' 2y美元10美元jdj5jdewjdhsthv6sgviquprrhzngqsuetlk8iem0okh6hpycoo22);
/真
为验证= password_verify('bar ',' 2y美元10美元jdj5jdewjdhsthv6sgviquprrhzngqsuetlk8iem0okh6hpycoo22);
/ false
有了以上的知识,你可以创建一个哈希密码快速、安全地在新版本的PHP 5.5.0。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部