0

少し前に、Google Appengineで遊んでみたかったので、JavaWebサイトを作成しました。今、私はそれから逃れる必要があり、Railsに移行したいのですが、Webサイト自体は問題ではありませんが、JavaバージョンではBasicPasswordEncryptorを使用してパスワードを暗号化しました。

今、私はRubyでこれと同じハッシュを取得する方法を知りません。ドキュメントには、md5暗号化であると記載されていますが、ハッシュは次のようになります。

4 + RZ + 7Vn /ddlNv4rdJeeg....。

すべてのハッシュは32文字の長さですが、実際にはMD5ハッシュのようには見えません。また、塩がどこに保管されているのかわかりません。

誰かがこれを理解するのに役立つ情報を持っていますか?

ありがとう

4

1 に答える 1

1

BasicPasswordEncryptorは次のことを行います

a)パスワードをバイト配列に変換しますb)ランダムな8バイトのソルトを作成しますc)ソルトを使用してmd5に1000回の入力を渡しますd)MD5の結果を取得します-16バイトe)この結果にソルトを追加します-8バイトf)それはbase64で24バイト(MD5とsalt)をエンコードしますが、私が理解しているように、これは最終的に32バイトになります。

ここでソースコードを見ることができます: http: //grepcode.com/file/repo1.maven.org/maven2/org.jasypt/jasypt/1.5/org/jasypt/util/password/BasicPasswordEncryptor.java http:// grepcode.com/file/repo1.maven.org/maven2/org.jasypt/jasypt/1.5/org/jasypt/digest/StandardByteDigester.java#StandardByteDigester.digest%28byte%5B%5D%29

したがって、Railsで同じことを行う必要があります(新しいダイジェストパスワードを生成したり、古いダイジェストパスワードをチェックしたりするため)。

ダイジェストから元のパスワードを復元する方法はありません(これがダイジェストの要点です)。

于 2012-09-19T23:05:18.053 に答える