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

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

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

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

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

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

  • Как разобрать строку в bash на переменные, используя вкладку в качестве разделителя и сохранить пробелы?
  • не удалось запустить mysqld в arch linux
  • Установка mysql-сервера в сценарии оболочки брандмауэра (как пропустить настройку?)
  • Как сбрасывать mysql dbs в live boot
  • запись вывода mysql в файл в CentOS 7
  • phpmyadmin не работает после установки php5-mysqlnd
  • Сервер MySQL не будет устанавливать на новый os (Debian, Ubuntu)
  • Как изменить пароль «root» MySQL с помощью MySQL v5.7?
  • 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% уверен. Тестирование миграции в любом случае является обязательным, вы должны беспокоиться о гораздо большем количестве проблем, возникающих в них.

    Linux и Unix - лучшая ОС в мире.