crypt () на разных машинах

Из-за проблемы с оборудованием мне нужно перенести многие виртуальные пользователи на новый компьютер. Их пароли, хранящиеся в MySQL, зашифрованы с помощью ENCRYPT которые в конечном итоге используют crypt() .

Возможно, это моя вина, но salt не была добавлена, когда были сохранены пароли, поэтому они абсолютно случайны. Моя основная идея заключалась в том, чтобы сбрасывать базу данных, а затем импортировать ее. Когда я попытался сохранить одну и ту же строку на одном компьютере с ENCRYPT это дало мне разные результаты. Будут ли пароли пользователей работать на новом компьютере?

Обновление по методу среды и шифрования:

  • На старой машине работает Debian Etch с MySQL 5.0
  • Новая машина запускает Debian Squeeze с MySQL 5.1
  • Метод шифрования – это значение по умолчанию для MySQL по умолчанию ENCRYPT
  • Соль не была добавлена ​​первоначально
  • Я не знаю паролей

Спасибо за ваши отзывы, fabrik

One Solution collect form web for “crypt () на разных машинах”

Из предоставленной ссылки на ENCRYPT()

Если аргумент соли не указан, используется случайное значение.

salt – строка из 2 символов, сохраненная в начале зашифрованного текста. например, шифрование строки с солью = 'df', 'df' находится в начале выходного продукта.

 mysql> SELECT ENCRYPT('hello','df'); +-----------------------+ | ENCRYPT('hello','df') | +-----------------------+ | dfbVa429UeC0U | +-----------------------+ 1 row in set (0.00 sec) 

Другим примером является отсутствие salt

 mysql> SELECT ENCRYPT('hello'); +------------------+ | ENCRYPT('hello') | +------------------+ | oBSydDfeNx5ug | +------------------+ 1 row in set (0.00 sec) 

Теперь используйте первые два символа предыдущей строки как salt

 mysql> SELECT ENCRYPT('hello','oB'); +-----------------------+ | ENCRYPT('hello','oB') | +-----------------------+ | oBSydDfeNx5ug | +-----------------------+ 1 row in set (0.00 sec) 

Тот же выход.

Вероятно, у вас, скорее всего, не будет проблемы, но для того, чтобы быть на 100% уверенным (реализация crypt одинакова), создайте тестовую учетную запись на старой машине и перенесите ее на новую. Проверьте, работает ли пароль для обоих из них.

РЕДАКТИРОВАТЬ:

salt ВСЕГДА хранится в первых буквах зашифрованной строки пароля. salt NO WAY потеряны, и, если бы salt пользователи не смогли войти в вашу старую машину в первую очередь. Вам не нужно (и вы не должны) знать какие-либо пароли.

Если вы переходите от etch, чтобы сжать, самый разумный путь – настроить тестовый сервер с Debian Squeeze. Для этого вам не нужны аппаратные средства, например, настройте гостя VirtualBox. Затем создайте нового пользователя на старой машине и перенесите свою учетную запись на тестовую машину. Если пароль работает для обеих машин, то вам хорошо идти, это единственный способ быть на 99,9% уверен. Тестирование миграции в любом случае является обязательным, вы должны беспокоиться о гораздо большем количестве проблем, возникающих в них.

  • Проблемы с установкой php с поддержкой MySQL
  • Mysql не запускается
  • Mysql 100% 1 загрузка центрального процессора
  • Не удается запустить службу MySQL на недавно обновленной виртуальной машине
  • OOM Killer - убил сервер MySQL
  • Результат mysql для переменной bash
  • mysqld мертв, но файл pid существует
  • Отладка медленных запросов в MariaDB / MySQL
  • Какое правильное регулярное выражение для фильтра mysql в fail2ban?
  • PHP на centos 6 не работает
  • Отключить -skip-grant-tables в MySQL
  • Ошибка mysql-workbench при загрузке разделяемых библиотек (libzip.so.2)
  • Linux и Unix - лучшая ОС в мире.