私は既存の質問で答えを探しましたが、Railsでこのハッシュスキームをカバーするものは何も見つかりませんでした。Railsで特定のmd5ハッシングスキーム
私は現在、まだ学習中のRuby-on-RailsにPHPプロジェクトを移行しています。私は、ユーザーのパスワードをハッシュするためのMD5(私は知っている、それは一時的なものです...)ハッシングスキームを移植するのに苦労しています。私は平易なMD5が動作していますが、必要なハッシング・スキームの正しい構文を見つけることができません。 PHPプロジェクトのハッシュ方式の
仕組みは以下のとおりです。
は、パスワードのMD5ハッシュを作成します。 塩のMD5ハッシュを作成します。 password_hashをsalt_hashに連結します。 concatenated_stringのMD5ハッシュを作成します。 ハッシュを作成するため
PHPをconcatenated_stringにstored_hashの比較は以下のとおりです。
Spree::User.class_eval do
def valid_password?(password)
if self.salt.present
if ::Digest::MD5.hexdigest((::Digest::MD5.hexdigest(password)).(::Digest::MD5.hexdigest(salt))) == self.stored_hash
*# Do some stuff*
else
false
end
end
end
end
任意のアイデア:
function fn_generate_salted_password($password, $salt)
{
$_pass = '';
if (empty($salt)) {
$_pass = md5($password);
} else {
$_pass = md5(md5($password) . md5($salt));
}
return $_pass;
}
(哀れな)私がこれまでのRailsでのこのセクションのために持ってしようか?
ことの一つは、可能な限り迅速にMD5パスワードをオフに殺害されます。誰かがログインしてパスワードが正しいと確認したときに、ユーザーレコードを適切にハッシュ化したバージョン(bcryptなど)で更新する機会があります。パスワードを変更するためにユーザーを嫌う必要はありません。 – tadman
問題を抱えている人を助けるために、「テスト」や「例」のようなパスワードを保存して、コードが正しく動作していることを他の人が確認できるようにする例がありますか? – tadman
MD5ハッシュがデータベースから削除され、パスワードがbcryptなどでハッシュされるというアイデアがあります。 最終的なハッシュ結果が "testing"と "サンプル "をPHPアプリケーションに追加し、できるだけ早くこの質問を答えに更新してください。 ちょうど私がここで目標とする必要がある "塩"は、 "salt"ではなく、legacy_saltのデータベースにフィールド名を持つでしょう。 MD5のダイジェストで使用されるデフォルトの「塩」ではないので、これをどこかに定義する必要はありますか? – bearmettle