2017年3月2日

MySQL上で文字列を置換するための関数「replace()」と、MD5でハッシュ化する関数「MD5()」

会員情報を格納しているテーブルにログインのためのパスワードがあるのですが、プログラムの知識が乏しい時期に作成したテーブルのため、パスワードを生でそのまま文字列として格納している。そのパスワードを全て一括でMD5ハッシュ化したい。そんな時に便利だった、置換するための関数「replace()」と、MD5でハッシュ化する関数「MD5()」のご紹介です。

実行は慎重に、自己責任でお願いします。

replace関数の例

MySQL上での置換処理は下記のSQL文で実行できます。

UPDATE `テーブル名` SET `カラム名` = REPLACE (カラム名, '置換対象文字列', '置換後文字');

例えばテーブル名が「user」、置換対象カラム名が「address」だとして下記のSQL文を実行します。

UPDATE `user` SET `address` = REPLACE (address, '府', '');

これにより、例えば「大阪府」は「大阪」に置換されます。

MD5ハッシュ関数の例

続いてMD5でのハッシュ化処理は下記のSQL文で実行できます。

SELECT MD5('文字列');

登録済みのパスワードをMD5でハッシュ化して置換する

上記例の組み合わせで、登録済みのパスワードをMD5でハッシュ化して置換するSQL文がこちら。テーブル名が「user」、パスワードを格納しているカラム名が「password」だとします

UPDATE `user` SET `password` = REPLACE (password, password, MD5(password));

置換対象文字列は格納されている文字列そのまま、置換後文字はMD5でハッシュ化したpasswordの文字列を入れています。これでpasswordに格納されている文字を全てMD5でハッシュ化する事ができます

MySQLで使える文字列置換関数「replace()」と、MD5ハッシュ関数「MD5()」のご紹介でした。

, ,

コメントを残す

メールアドレスが公開されることはありません。