2011-09-11 9 views
0

私はいくつかの列を持つuserというデータベーステーブルを持っています。これらの列の1つがユーザーパスワードです。MD5テーブル内のすべてのパスワードを暗号化します

このパスワードは暗号化されていません。私が今行う必要があるのは、自動的にすべてのユーザーとそのテーブルのすべてのパスワードを取得し、暗号化し、新しい暗号化パスワードでテーブルを更新します。

どうすればよいですか? PHPループを使用していますか?または何?

私はここで失わ少しだ..

あなたが作業例を提供していただけますか?

だから、私は完全に失われています。その後

$query="SELECT * FROM users"; 
$ar=mysql_query($query) or die("Error selecting accounts: ".mysql_error()); 
$ac = mysql_num_rows($ar); 
while($arow = mysql_fetch_array($ar)) { 
$password = $arow['Password']; 
} 
AND....... 

表からパスワードを選択します。

お手伝いできますか?

ありがとうございます。

+5

md5が暗号化されていないため、これを行うことは不可能です。 –

+0

md5は復号化できないハッシュです – eric

答えて

4

このコードをphpMyAdmin SQLクエリページに入力してください。最初にphpMyAdminにログインし、DBとテーブルを選択して「SQL」をクリックします。そして、あなたはフィールドでこれを入力して提出する必要があります:OPは、実際のP​​HPコードを望んでいた

UPDATE users SET password = MD5(CONCAT(password, user_id)) 

EDIT:

$query = "UPDATE users SET password = MD5(CONCAT(password, user_id))"; $ok = mysql_query($query); 

がこれ以上明確を取得できません。パスワードフィールドがmd5ハッシュを格納するのに十分な大きさであることを確認する必要があります。 md5ハッシュの長さは32文字です。

+2

そして塩で 'UPDATE users SET password = MD5(CONCAT(password、user_id))' – arnaud576875

+0

はい、塩を使用してください!ありがとうarnaud。あなたは塩を使ったことを覚えておかなければなりません。 =) –

+0

このクエリを2回実行すると、すべてのパスワードが永久に失われていることに注意してください。このクエリを実行する場合は、実際の値ではなくMD5ハッシュを期待するためにパスワード列を使用するクライアントコードを変更する必要があります。 – Andomar

0

EDIT DiegoPは、PHPでこれを行う方法を尋ね、ここでそれは(私はそこにコメントを追加することができなかったいくつかの理由で...)来

$db = Do database connection here; 
$query = "UPDATE users SET password = MD5(CONCAT(password, user_id))"; 
$doit = mysql_query($query, $db); 

:それは

を使用ループしたい場合は
<?php 
$q = "SELECT * FROM users"; 
$s = mysql_query($q, $connection); 

for ($i = 0; $i < mysql_num_rows($s); $i++) { 
$uid = mysql_result($s, $i, "user_id"); 
$pass = mysql_result($s, $i, "password"); 
$s2 = mysql_query("UPDATE users SET password = MD5(CONCAT('".$pass."', '".$uid."')) WHERE user_id = '".$uid."'"); 
} 
?> 
+0

これは問題ありません。しかし、どうすればそれを自動的に行うのですか?更新するユーザーIDを知らなくても。これは、すでにusersテーブルに挿入されているすべてのユーザに対して発生するはずです。私は正確なユーザーIDを知らないので、私はそのテーブルに既に存在する各ユーザーのためにそれを行う方法が必要です。ループでこれを行う方法はありますか?または、他の何か?ありがとう –

+0

はい、私はすでに自動的にそれを行うと思いますか?その行から自動的にuser_id? – Olli

+0

ループを追加しましたので、試してみてください。 – Olli

関連する問題