質問: ###### 質問概要 ユーザ等のパスワードをDBに保存する際、一般的には暗号化して登録すると思いますが、この登録時に使用したプログラミング言語と、このパスワードを使って認証するプログラミング言語が異なる場合に簡単に実現できる方法はないかというご質問です。 ###### 具体例 PHPで構築したWEBアプリがあり、ブラウザのフォームからユーザ登録を受け付けます。 そこで入力されたユーザのパスワードを、PHPのpassword_hash関数でハッシュ化し、ハッシュ化したパスワードをDBに登録します。 一方で、同DBに対してCRUDするWebAPIを作成します。こちらの言語がGoになります。 初回認証時に、PHPの関数でハッシュ化されたパスワードをGo(WebAPIでPOSTされたパスワード)で照合(コンペア)します。 ※実際にGoのbcryptパッケージでコンペアしてみたところ上手くいかなかったので質問しています ###### 質問内容 上記例の場合、どうするのがベターでしょうか? 個人的には、上記を解決する方法として下記2点を考えております。 1認証処理を一本化する(PHPに一本化するならGoから認証だけPHPを呼ぶ) 2プロジェクトで共通の暗号・復号処理を各言語ごとに独自で実装する (PHPの関数は使わず、GoとPHP共通のアルゴリズムで暗号・復号) PHPとGOに関わらず、このようにシステムに複数言語を使われている方がいましたらどのように実現されているか知りたいです。 良い方法がありましたら是非教えてください。 よろしくお願いします。
回答: 余談になりますが、認証のためにハッシュ化されたパスワードを復号する ってのはあんまやんないんじゃないかなあ。 入力されたものをハッシュ化して、それ同士を比較するみたいな!?