1

bcryptを使用してユーザーのパスワードをハッシュし、これらのハッシュされたパスワードをデータベースに保存することを計画しています。

ユーザー アカウントの作成を処理し、ハッシュされたパスワードをデータベースに挿入するサーバーは、Java で記述されています。

ユーザー情報 (ハッシュされたパスワードを含む) にアクセスする必要がある別のサーバーは、Python で記述されています。

Java 側でjBCryptを使用する予定でしたが、その前に、これらのハッシュ化されたパスワードを Python 側から認識/使用できるようにしたいと考えています。

私の理解では、Python BCrypt の実装が Java の実装と同じである限り、これは問題にはなりません。

では、Python から jBCrypt を使用してハッシュ化されたパスワードを使用できますか? どのように?

前もって感謝します!

4

1 に答える 1

1

実際にやってみるのが一番分かりやすいです。両方の実装が正しいと仮定すると、必要に応じてデータを再エンコードするように注意する限り、互換性があるはずです。

通常、ハッシュは生のハッシュのバイト配列または ASCII 16 進数表現としてメモリに格納されます。使用しているエンコーディングを知る最善の方法は、実際にコンソールに出力することです。ゴミのように見える場合は、生のバイト配列になります。16 進数の文字列 (0-9 および af) を出力する場合、ASCII エンコードされた 16 進数です。

ソルトはおそらくハッシュのように保存されます。ラウンド数は整数です。このすべてのデータを共通の形式で保存するのはあなた次第です。Python で ascii 16 進文字列をバイト配列 (実際には文字列) に変換する必要がある場合は、string.encode を使用できます。

>>> 'hello world'.encode('hex')
'68656c6c6f20776f726c64'
>>> '68656c6c6f20776f726c64'.decode('hex')
'hello world'

Python での bcrypt の実装については、 py-bcryptを試してください。

于 2013-06-06T02:36:10.350 に答える