Laravel密码哈希

时间:2017-06-27 14:04:40

标签: laravel hash passwords laravel-5.4

我有一个外部服务,希望通过我在Laravel应用程序中创建的定制API创建用户。

而不是远程端以纯文本形式向我发送密码,我希望远程端首先对密码进行散列,但我不确定如何使用散列。

远程端使用ASP.NET使事情稍微复杂一些。

我猜Laravel正在使用CRYPT_BLOWFISH,因为这是服务器上最强大的,但不确定盐是如何工作的。有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

http://php.net/manual/en/function.crypt.php

  

CRYPT_BLOWFISH - 用下面的盐对河豚进行散列:“$ 2a $”,“$ 2x $”或“$ 2y $”,两位数的成本参数“$”,字母表中的22个字符“./ 0-9A-ZA-Z”。在salt中使用此范围之外的字符将导致crypt()返回零长度字符串。两位数的成本参数是底层基于Blowfish的散列算法的迭代计数的基数2对数,并且必须在04-31范围内,超出此范围的值将导致crypt()失败。 5.3.7之前的PHP版本仅支持“$ 2a $”作为salt前缀:PHP 5.3.7引入了新的前缀来修复Blowfish实现中的安全漏洞。有关安全修复程序的完整详细信息,请参阅»此文档,但总而言之,仅针对PHP 5.3.7及更高版本的开发人员应使用“$ 2y $”而不是“$ 2a $”。

来自Laravel的示例哈希:

$2y$10$RXyfF5/5qdBeGbwKgU5NR.p1OcgT5t3N.M5ql5PHm.UoxYGOogDWi
  • 2y =河豚前缀
  • 10 =成本参数
  • RXyfF5 / 5qdBeGbwKgU5NR。 = 22炭盐
  • p1OcgT5t3N.M5ql5PHm.UoxYGOogDWi = bcrypt hash