2016-05-02 10 views
-3

私は会社のために働いています。私は彼らのAPIをGolangにPhpからリメイクする必要があります。以前の開発者はPhpでPhpassを使用していましたが、Golangで使用する必要があります。ゴランとPhpass(Php)どうやって?

私はphpassの実装方法を調べましたが、phpと同様に動作しないようです。

私はこれらのgithubの実装を見た:

gopass - ゴー

phpassにphpassアルゴリズムを実装 - PHPassパスワードの行くの実装を...

は、多分それは奇妙だが、それが動作んPHPで同じ?私にとって、同じパスワード/用の新しいハッシュパスワードを得るたびに。私はまた、PHPを行ったことがないので、私はこのクラス/ライブラリ(phpass)をテストする方法を実際にはわかりません

ありがとうございました!

+0

ハッシュが 'bcrypt'によってサポートされている場合、生成されるハッシュは世代ごとに異なると予想されます。これは設計によるものです。同じパスワードで生成された異なるハッシュを消費して検証することは、すべて機能するはずです。 –

+0

あなたの答えをありがとう! 「消費して検証する」とはどういう意味ですか?私は理解することがわかりません – Emixam23

+0

私は。 https://godoc.org/golang.org/x/crypto/bcrypt#CompareHashAndPasswordを使用して –

答えて

2

異なるハッシュは塩析の結果であり、各パスワードは独自の固有の塩を得なければなりません。この塩は、生成されたハッシュストリングに他のパラメータと共に含まれているので、password_verify()関数はそれを抽出して、入力されたパスワードを検証することができます。

このanswerによれば、Go言語はBCryptアルゴリズムを実装しているようです。これは、非常に古いPHPバージョンで生成されていないハッシュの場合、phpassライブラリのデフォルトになります。ハッシュが署名$2y$...で始まる場合、BCryptの実装はPHPによって生成されたハッシュと互換性があります。

関連する問題