Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: base64 to md5
Форумы портала PHP.SU » » Вопросы новичков » base64 to md5

Страниц (1): [1]
 

1. trancefer - 25 Ноября, 2011 - 16:53:32 - перейти к сообщению
Здравствуйте. База mysql 5.0
Нужно из одной бд перенести данные аккаунтов в другую. Дело в том что пароли в старой базе зашифрованы в base64, а нужно перенести их шифроваными в md5.
Подскажите пожалуйста как это сделать делать?
2. OrmaJever - 25 Ноября, 2011 - 17:00:52 - перейти к сообщению
каждый пароль расшифровать base64_decode() и зашифроват ьв md5()
3. trancefer - 25 Ноября, 2011 - 19:29:22 - перейти к сообщению
решение:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $dbhost = "localhost";
  3. $dbuser = "root";
  4. $dbpassword = "root";
  5. $dbname = "shop";
  6.  
  7. $connect = mysql_connect($dbhost,$dbuser,$dbpassword);
  8. mysql_select_db($dbname, $connect);
  9. $query = mysql_query('SELECT customer_id, password FROM `customer`');
  10.  
  11. // change password
  12. while ($row = mysql_fetch_assoc($query)) {
  13.         mysql_query('UPDATE `customer` SET password = "'.md5(base64_decode($row['password'])).'"
  14.  WHERE customer_id = '.$row['customer_id']);
  15. }
  16. ?>
4. OrmaJever - 25 Ноября, 2011 - 21:57:14 - перейти к сообщению
ну раз записываете в одну и туже таблицу то можно и одним запросом
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `customer` SET `password` = md5(base64_decode(`password`)) WHERE `customer_id` = '.$row['customer_id']

Я не проверял но помоему в mysql есть функции base64_decode и md5

 

Powered by ExBB FM 1.0 RC1