【问题标题】:Golang and Phpass (Php) How to do?Golang 和 Phpass (Php) 怎么办?
【发布时间】:2016-08-26 23:21:57
【问题描述】:

我在一家公司工作,我必须将他们的 API 从 Php 重新制作为 Golang。之前的开发者使用 Phpass 和 Php,但是我需要使用 Golang。

我搜索了如何在 go 中实现 phpass,但它似乎不像在 php 中那样有效。

我看到了这些 github 实现:

gopass — 在 go 中实现 phpass 算法

phpass — PHPass 密码的 go 实现 ...

也许这很奇怪,但它在 PHP 中的工作方式是否相同?对我来说,每次我为相同的密码/使用获得一个新的哈希密码时。我也从来没有做过php,所以我真的不知道如何测试这个类/库(phpass)

感谢您的帮助!

【问题讨论】:

  • 如果您的散列由bcrypt 支持,那么生成的散列预计在每一代都不同。这是设计使然。使用和验证由相同密码生成的不同哈希应该都可以工作。
  • 感谢您的回答! “消费和验证”是什么意思?我不太明白

标签: php go hash passwords phpass


【解决方案1】:

不同的哈希是加盐的结果,每个密码都应该有自己独特的加盐。然后这个盐与其他参数一起包含在生成的哈希字符串中,因此password_verify() 函数可以提取它来验证输入的密码。

根据这个answer,Go语言似乎实现了BCrypt算法。如果哈希不是用非常旧的 PHP 版本生成的,这将是 phpass 库的默认值。如果您的哈希以签名 $2y$... 开头,那么 BCrypt 实现很可能与 PHP 生成的哈希兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多