Index: /branches/version-2_11-dev/data/class/pages/forgot/LC_Page_Forgot.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/forgot/LC_Page_Forgot.php	(revision 20764)
+++ /branches/version-2_11-dev/data/class/pages/forgot/LC_Page_Forgot.php	(revision 20845)
@@ -204,6 +204,17 @@
                 and $result[0]['reminder'] == $arrForm['reminder']) {
 
-            if (SC_Utils_Ex::sfIsMatchHashPassword($arrForm['reminder_answer'],
+            $is_authorized = false;
+            if (empty($result[0]['salt'])) {
+                // 旧バージョン(2.11未満)からの移行を考慮
+                if ($result[0]['reminder_answer'] == $arrForm['reminder_answer']) {
+                    $is_authorized = true;
+                }
+            }
+            elseif (SC_Utils_Ex::sfIsMatchHashPassword($arrForm['reminder_answer'],
                      $result[0]['reminder_answer'], $result[0]['salt'])) {
+                $is_authorized = true;
+            }
+
+            if ($is_authorized) {
                 // 秘密の答えが一致
                 // 新しいパスワードを設定する
Index: /branches/version-2_11-dev/data/class/util/SC_Utils.php
===================================================================
--- /branches/version-2_11-dev/data/class/util/SC_Utils.php	(revision 20841)
+++ /branches/version-2_11-dev/data/class/util/SC_Utils.php	(revision 20845)
@@ -2122,5 +2122,10 @@
                 }
             } else {
-                $hash = SC_Utils_Ex::sfGetHashString($pass, $salt);
+                if (empty($salt)) {
+                    // 旧バージョン(2.11未満)からの移行を考慮
+                    $hash = sha1($pass . ":" . AUTH_MAGIC);
+                } else {
+                    $hash = SC_Utils_Ex::sfGetHashString($pass, $salt);
+                }
                 if($hash === $hashpass) {
                     $res = true;
Index: /branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php
===================================================================
--- /branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php	(revision 20844)
+++ /branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php	(revision 20845)
@@ -49,4 +49,7 @@
         if(is_numeric($customer_id)) {
             $salt = $objQuery->get('salt', "dtb_customer", "customer_id = ? ", array($customer_id));
+
+            // 旧バージョン(2.11未満)からの移行を考慮
+            if (empty($salt)) $old_version_flag = true;
         }else{
             $salt = SC_Utils_Ex::sfGetRandomString(10);
@@ -58,4 +61,11 @@
             unset($array['password']);
         } else {
+            // 旧バージョン(2.11未満)からの移行を考慮
+            if ($old_version_flag) {
+                $is_password_updated = true;
+                $salt = SC_Utils_Ex::sfGetRandomString(10);
+                $array['salt'] = $salt;
+            }
+
             $array['password'] = SC_Utils_Ex::sfGetHashString($array['password'], $salt);
         }
@@ -64,6 +74,19 @@
             //更新しない
             unset($array["reminder_answer"]);
+
+            // 旧バージョン(2.11未満)からの移行を考慮
+            if ($old_version_flag && $is_password_updated) {
+                // パスワードが更新される場合は、平文になっている秘密の質問を暗号化する
+                $reminder_answer = $objQuery->get('reminder_answer', "dtb_customer", "customer_id = ? ", array($customer_id));
+                $array["reminder_answer"] = SC_Utils_Ex::sfGetHashString($reminder_answer, $salt);
+            }
         } else {
-            $array["reminder_answer"] = SC_Utils_Ex::sfGetHashString($array["reminder_answer"], $salt);
+            // 旧バージョン(2.11未満)からの移行を考慮
+            if ($old_version_flag && !$is_password_updated) {
+                // パスワードが更新されない場合は、平文のままにする
+                unset($array['salt']);
+            } else {
+                $array["reminder_answer"] = SC_Utils_Ex::sfGetHashString($array["reminder_answer"], $salt);
+            }
         }
 
