-3

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

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

我看到了这些 github 实现:

gopass — 在 go 中实现 phpass 算法

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

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

感谢您的帮助!

4

1 回答 1

2

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

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

于 2016-05-02T11:27:14.343 回答