【问题标题】:In Google's directory API, what hash format is required when "crypt" is provided as the hashFunction for a user?在 Google 目录 API 中,当为用户提供“crypt”作为哈希函数时,需要什么哈希格式?
【发布时间】:2014-07-24 04:47:15
【问题描述】:

根据documentation,hashFunction 接受 'crypt' 作为有效值。我的问题是弄清楚这实际上是什么类型的哈希。

由 PHP 的 password_hash 函数(我理解它使用 crypt)生成的哈希请求失败。

请求:

回复:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Input: $2y$10$qCE0dkXTyFIg6VmqZ/24AuH0Xo5vb8ce3pX9FhRQn5bJzUnAYLax."
   }
  ],
  "code": 400,
  "message": "Invalid Input: $2y$10$qCE0dkXTyFIg6VmqZ/24AuH0Xo5vb8ce3pX9FhRQn5bJzUnAYLax."
 }
}

(提供的哈希是从密码“hello”生成的)。

Google 将接受的有效哈希的示例是什么?

【问题讨论】:

    标签: hash crypt google-directory-api


    【解决方案1】:

    我相信我已经弄明白了(示例密码都是hello):

    • 使用DES-based scheme 生成的密码被接受
      • 示例:saPPmoXIbs91M
    • 接受使用MD5-based scheme(以$1$ 开头)生成的密码
      • 示例:$1$2p5.hs1.$.MKLW7B4Bi.EQMd6agPzO。
    • 接受使用基于 SHA-256 或 SHA-512 的方案(分别以 $5$ 和 $6$ 开头)生成的密码
    • 使用Blowfish-based scheme(以 $2 开头)生成的密码不被接受

    接受的哈希与htpasswd 使用-m 或-d 创建的哈希类型相同。

    在 PHP 中使用crypt($password) 生成的密码将被接受(如果您不指定盐),但更新、更安全的password_hash($password) 不会。

    【讨论】:

    • PHP 5.6 或更高版本如果没有给crypt 加盐,则会引发E_NOTICE。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2012-11-27
    • 2014-07-01
    • 2015-04-29
    • 1970-01-01
    • 2011-06-16
    • 2011-04-25
    相关资源
    最近更新 更多