数码资讯
在PHP中创建和验证哈希的一种简单方法
PHP 5.5.0带来一个完整的新特性和功能列表。一个新的API密码哈希API,其中包含4个功能:password_get_info(),(),password_hash password_needs_rehash(),()和password_verify。让我们一步一步地学习每一个函数。 让我们与
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
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。
让我们与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。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。