2012-01-24 10 views
2

パスワードをプレーンテキストで保存していた従来のアプリケーションを使用しています。私はアプリケーションを3MVC +セキュリティのスプリングに移植しました。また、ユーザー名に基づいてsha256 + saltを使用して、認証と承認を処理する春のセキュリティを正常に取得しました。これはすばらしいことですが、展開の一環として、新しいパスワードスキーマを使用するために既存のデータベースを移行する必要があります。私はどのように春のセキュリティは、塩でパスワードをハッシングするので、私は新しいsha256 +塩のスキーマに古い平文のパスワードを移行するために使用することができるSQLスクリプトを書くことができませんですかわからない。これを把握するために使用できる資料やリソースはありますか?春のセキュリティパスワードハッシュ+塩

+0

http://static.springsource.org/spring-security/site/docs/2.0.x/apidocs/org/springframework/security/providers/encoding/ShaPasswordEncoder.html?あなたも知っていますか?あなたはハッシュが一致するかどうか試しましたか? – Cratylus

+0

私は接頭辞と接尾辞の両方で塩を含むsha256発電機を使用しようとしましたが、幸運はパスワードのスプリングと一致しませんでした –

答えて

9

これはBasePasswordEncoderに記載されています:

生成されたパスワードがpassword{salt}の形態であろう。

は、だからあなたの場合には、あなたはこの単純なコードを使用して塩漬けパスワードを計算することができます

new ShaPasswordEncoder(256).encodePassword(oldPassword, randomSalt) 

注:ShaPasswordEncoderBasePasswordEncoderを拡張します。

+0

私は馬鹿です...接頭辞/インクルード{} ..ありがとう –

0
  1. デフォルトのパスワードのエンコードを使用している場合は、the sourceは便利そうです。 (使用しているバージョンのブランチを選んでください)。
  2. 独自のPasswordEncoderを実装して、塩の使用方法を定義することができます。