昨今「MD5やばいよねぇ」的な話とかいろいろと出ておりまするが。
とりあえず「さっくりと変更させる手法」草案をのっけてみます。
…草案なんで、まだ全然洗練されてませんが。多分とりあえずこれである程度なんとかなるんじゃないかなぁと。
ってなわけで、毎度おなじみ「memo」でございます。
変更箇所は3箇所。
テーブルに対して
「new_password」とかいうノリのカラムを一つ追加しておく。
ALTER TABLE を使うことになるんだろうなぁと。…ちょっと怖いSQLなので、バックアップなどは万全に。
認証直後の処理
SQL等で認証をするプログラム部分
if (auth()) {
if ("" eq new_password) {
new_password(新しい暗号処理(入力したRAWパスワード)); // 新しいパスワードの設定
password(""); // 古いパスワードの除去
}
}
んっと。if文の順番は、ある時間軸で適当に前後を変更したほうが効率はよいです。
まぁ昨今「if文一つ分の処理コスト」にそこまで意識を払う必要があるんかい、って気もいたしますが。
とりあえず順番的には
if (password() eq "") {
new_passwordカラムを使っての認証処理
} else {
passwordカラムを使っての認証処理
}
・テーブル変更して
・認証部分のプログラム書いてテストして
・認証直後の追加処理入れて
の順番かな?
テストさえちゃんと出来てれば、ほぼシームレスに移行可能かと思われるです、はい。
ちなみに、プログラム部分は
でもいいと思うんだけど…こっちのほうが散らからなくていいのかな???
if (password() eq "") {
new_passwordカラムを使っての認証処理
} else {
passwordカラムを使っての認証処理変更処理
new_password(新しい暗号処理(入力したRAWパスワード)); // 新しいパスワードの設定
password(""); // 古いパスワードの除去
}
既存のソース次第なのかも。ちょっとお悩み。