Задавайте вопросы, мы ответим
Вы не зашли.
ТО есть что-то типа такого чтобы было
mysql> show databases> file.txt;
Я бы сам нашёл (через help), но я английский не очень хорошо знаю, ничё похожего на movie (перемещение) в консоли не вижу.
Извините если что не так и спасибо заранее.
Неактивен
Из командной строки ОС нужно дать такую команду:
Неактивен
Спасибо, выводится всё, но я вынужден переспросить. Я имел ввиду, вот такой вывод (в файл, естественно)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
+--------------------+
3 rows in set (0.02 sec)
...Так, а сейчас по способу, указаному Вами, в файл выводятся ключи и прочее. Я растерян- команда одна, а выводы разные в обоих случаях. Как так? Непонятно. Получается, один из выводов неправильный что ли?
SHOW DATABASES lists the databases on the MySQL server host. SHOW
SCHEMAS is a synonym for SHOW DATABASES as of MySQL 5.0.2.
По идее, он и должен выводить ключи, а чё же он тогда мне таблицу такую выводит?
Неактивен
Я Вас не совсем понял. Что значит "должен выводить ключи"?
Про какие ключи Вы говорите?
Файл должен получаться вот такого содержания:
Неактивен
E:\vso_moio>mysql -u root -p YES SHOW DATABASES > file.txt
Даёт файл такого содержания.Тут и ключи и всё на свете
James написал:
mysql Ver 14.14 Distrib 5.1.40, for Win32 (ia32)
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--auto-rehash Enable automatic rehashing. One doesn't need to use
'rehash' to get table and field completion, but startup
and reconnecting may take a longer time. Disable with
--disable-auto-rehash.
-A, --no-auto-rehash
No automatic rehashing. One has to use 'rehash' to get
table and field completion. This gives a quicker start of
mysql and disables rehashing on reconnect. WARNING:
options deprecated; use --disable-auto-rehash instead.
-B, --batch Don't use history file. Disable interactive behavior.
(Enables --silent)
--character-sets-dir=name
Directory where character sets are.
--column-type-info Display column type information.
-c, --comments Preserve comments. Send comments to the server. The
default is --skip-comments (discard comments), enable
with --comments
-C, --compress Use compression in server/client protocol.
-#, --debug[=#] This is a non-debug version. Catch this and exit
--debug-check Check memory and open file usage at exit.
-T, --debug-info Print some debug info at exit.
-D, --database=name Database to use.
--default-character-set=name
Set the default character set.
--delimiter=name Delimiter to be used.
-e, --execute=name Execute command and quit. (Disables --force and history
file)
-E, --vertical Print the output of a query (rows) vertically.
-f, --force Continue even if we get an sql error.
-G, --named-commands
Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.
-g, --no-named-commands
Named commands are disabled. Use \* form only, or use
named commands only in the beginning of a line ending
with a semicolon ( Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.
-i, --ignore-spaces Ignore space after function names.
--local-infile Enable/disable LOAD DATA LOCAL INFILE.
-b, --no-beep Turn off beep on error.
-h, --host=name Connect to host.
-H, --html Produce HTML output.
-X, --xml Produce XML output
--line-numbers Write line numbers for errors.
-L, --skip-line-numbers
Don't write line number for errors. WARNING: -L is
deprecated, use long version of this option instead.
-n, --unbuffered Flush buffer after each query.
--column-names Write column names in results.
-N, --skip-column-names
Don't write column names in results. WARNING: -N is
deprecated, use long version of this options instead.
-O, --set-variable=name
Change the value of a variable. Please note that this
option is deprecated; you can set variables directly with
--variable-name=value.
--sigint-ignore Ignore SIGINT (CTRL-C)
-o, --one-database Only update the default database. This is useful for
skipping updates to other database in the update log.
-p, --password[=name]
Password to use when connecting to server. If password is
not given it's asked from the tty.
-W, --pipe Use named pipes to connect to server.
-P, --port=# Port number to use for connection or 0 for default to, in
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/services, built-in default (3306).
--prompt=name Set the mysql prompt to this value.
--protocol=name The protocol of connection (tcp,socket,pipe,memory).
-q, --quick Don't cache result, print it row by row. This may slow
down the server if the output is suspended. Doesn't use
history file.
-r, --raw Write fields without conversion. Used with --batch.
--reconnect Reconnect if the connection is lost. Disable with
--disable-reconnect. This option is enabled by default.
-s, --silent Be more silent. Print results with a tab as separator,
each row on new line.
--shared-memory-base-name=name
Base name of shared memory.
-S, --socket=name Socket file to use for connection.
--ssl Enable SSL for connection (automatically enabled with
other flags). Disable with --skip-ssl.
--ssl-ca=name CA file in PEM format (check OpenSSL docs, implies
--ssl).
--ssl-capath=name CA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=name X509 cert in PEM format (implies --ssl).
--ssl-cipher=name SSL cipher to use (implies --ssl).
--ssl-key=name X509 key in PEM format (implies --ssl).
--ssl-verify-server-cert
Verify server's "Common Name" in its cert against
hostname used when connecting. This option is disabled by
default.
-t, --table Output in table format.
--tee=name Append everything into outfile. See interactive help (\h)
also. Does not work in batch mode. Disable with
--disable-tee. This option is disabled by default.
--no-tee Disable outfile. See interactive help (\h) also. WARNING:
option deprecated; use --disable-tee instead
-u, --user=name User for login if not current user.
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
-v, --verbose Write more. (-v -v -v gives the table output format).
-V, --version Output version information and exit.
-w, --wait Wait and retry if connection is down.
--connect_timeout=# Number of seconds before connection timeout.
--max_allowed_packet=#
Max packet length to send to, or receive from server
--net_buffer_length=#
Buffer for TCP/IP and socket communication
--select_limit=# Automatic limit for SELECT when using --safe-updates
--max_join_size=# Automatic limit for rows in a join when using
--safe-updates
--secure-auth Refuse client connecting to server if it uses old
(pre-4.1.1) protocol
--server-arg=name Send embedded server this as a parameter.
--show-warnings Show warnings after every statement.
Default options are read from the following files in the given order:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\WebServers\usr\local\mysql-5.1\my.ini C:\WebServers\usr\local\mysql-5.1\my.cnf
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit
--no-defaults Don't read default options from any options file
--defaults-file=# Only read default options from the given file #
--defaults-extra-file=# Read this file after the global files are read
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
auto-rehash FALSE
character-sets-dir /usr/local/mysql-5.1/share/charsets
column-type-info FALSE
comments FALSE
compress FALSE
debug-check FALSE
debug-info FALSE
database (No default value)
default-character-set cp1251
delimiter ;
vertical FALSE
force FALSE
named-commands FALSE
ignore-spaces FALSE
local-infile FALSE
no-beep FALSE
host (No default value)
html FALSE
xml FALSE
line-numbers TRUE
unbuffered FALSE
column-names TRUE
sigint-ignore FALSE
port 3306
prompt mysql>
quick FALSE
raw FALSE
reconnect FALSE
shared-memory-base-name (No default value)
socket /tmp/mysql5.sock
ssl FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
ssl-verify-server-cert FALSE
table FALSE
user root
safe-updates FALSE
i-am-a-dummy FALSE
connect_timeout 0
max_allowed_packet 16777216
net_buffer_length 16384
select_limit 1000
max_join_size 1000000
secure-auth FALSE
show-warnings FALSE
Отредактированно товарищ Емский (31.03.2010 21:57:31)
Неактивен
Нужно не YES SHOW DATABASES, а -e "SHOW DATABASES"
Неактивен
А он потом ещё потом пароль запрашивает Enter password, а пароль-то уменя пустой! (Жму на enter и в файл выводится таблица, как мы и хотели) Но я-то думал обойтись без ввода пароля, вот в чём дело.
Щас попытаюсь создать руту пароль и как-то так работать:
E:\vso_moio>mysql -u root -p пароль -e "SHOW DATABASES" > file.txt
Если не получится- придётся допольнительно вводить пароль. Жаль.
...В общем. надо так:
E:\vso_moio>mysql -u root -e "SHOW DATABASES" > file.txt
НО опять же, вопрос возникает: почему эта штука у меня не запрашивает пароль? Я свой для оси, но не для mysql! А она на до ж, безо всякого пароля выводит мне в файл базу данных
Хе, а если батничек написать, который выводил бы таблциу юзеров с паролями? Но это ладно, это вопрос не сегодняшнего дня. Спасибо, тему к закрытию можно.
Отредактированно товарищ Емский (31.03.2010 22:25:06)
Неактивен
Пароль нужно после ключа -p без пробела: -pпароль, а не -p пароль.
Если хотите без пароля, тогда -p пароль можно совсем убрать.
почему эта штука у меня не запрашивает пароль? Я свой для оси, но не для mysql!
Потому что у вашего пользователя в MySQL нет пароля.
а если батничек написать, который выводил бы таблциу юзеров с паролями?
Если только их список с незашифрованными паролями где-то хранить и оттуда выводить. MySQL применяет для хранения паролей необратимое шифрование, максимум, что Вы получите - пароль в зашифрованной форме (которые, разумеется, скормить клиенту нельзя).
Неактивен
Ясно. Надо почитать про необратимое шифрование. Для себя хотя бы.
Отредактированно товарищ Емский (31.03.2010 22:46:54)
Неактивен
Ну установите пароль для вашего пользователя в MySQL - и не будет выводить.
А если Вы беспокоитесь насчет того, что Вам в файл приходило (я имею в виду "mysql Ver 14.14 Distrib 5.1.40, for Win32 (ia32) ..."), то Вы вглядитесь в это повнимательнее.
Это краткое описание ключей программы mysql - информация общедоступная (mysql, если видит неправильный ключ, показывает эту справочную информацию и завершает работу; соответственно, Вы сказали перенаправить в файл, поэтому файл и содержал её).
Неактивен
Ясно. Надо почитать про необратимое шифрование. Для себя хотя бы.
А чё там читать... Ну хранятся в специальной базе под названием mysql пароли от пользователя в виде хэшей вида *2B4008693C6019E508538174461E05663F283D2E (вместо 'пароль'; причем слово 'пароль' из *2B4008693C6019E508538174461E05663F283D2E получить никак нельзя - только перебором).
База эта в явном виде по умолчанию доступна только root-пользователю MySQL.
Можно также прочитать напрямую и файлы базы. Однако к ним опять же доступ есть у пользователя ОС mysql (под которым, по идее, запрещено логиниться, так что не взломаешь) и у суперюзеров ОС, к которым доступ если взломали, то тут комментарии излишни.
Вот и всё, в общем-то; можно и не читать...
Неактивен
Гром среди ясного неба прозвучал 16 августа 2004, когда группа китайских исследователей (под руководством X.Wang) опубликовала на открытом сервере научных публикаций eprint.iacr.org безо всяких объяснений пары реальных коллизий для MD4, MD5, RIPEMD и HAVAL с единственным замечанием о том, что подбор этих входных текстов занял у них 1 час 5 минут.
ЕСли это не утка, то вот... Я и раньше подозревал, что необратимое шифрование блеф, другое дело, что времени на него уйдёт- дай Бог. А тут надо же- 1 час...
Неактивен
Во-первых, Вы путаете поиск дубликатов и получение незашифрованного пароля и зашифрованного.
Поиск дубликатов - это когда Вы имеете слово 'собака' и хотите знать, какие другие строки (причем совершенно произвольной длины) будут иметь MD5-хэш, такой же, как и 'собака'.
Наличие дубликатов просто означает, что на каждые 10^N строк есть 10^M дубликатов. Т.е. всего ключей не бесконечное количество (как возможных строк), а 10^(N-M), где N-M конечно. Поэтому есть вероятность, равная 1/10^(N-M), что ваш пароль совпадет с какой-то другой строкой (неизвестно какой). Вероятность эта настолько ничтожна, что смело принимается равной нулю.
(я тут, возможно, по математике где-то ошибся, но сути дела это не меняет).
Но всё это никак не поможет для получения пароля из необратимого шифра (шифрование - это сложная специфичная математическая процедура, в структуре которой и заложена необратимость шифрования).
Максимум, что можно сделать - это, имея шифр (учтите, что его еще надо заполучить - тоже не так просто) перебирать все возможные слова и сравнивать их шифр с имеющимся. Обычно ограничиваются какой-то небольшой длиной (от 6 до 8 символов, как правило) слова, т.к. затраты на исследование всех возможных вариантов возрастают с увеличением длины как степенная функция (т.е. очень быстро).
Во-вторых, конкретно MD5() не используется в MySQL для шифрования паролей учетных записей, а используется собственная функция PASSWORD().
Неактивен
Очень интересно. Да, я не дал себе труда подумать- действительно, пароль не получить.
...НО коль скоро у нас зашла об этом речь, а тему прикрывать не спешат...
Во-первых
А и не нужно получать пароль, согласитесь?
То есть чтобы войти, скажем под каким-то пользователем, пароль этого пользователя получать необязательно.
Как ВЫ понимаете, ничё нового я не сказал. Умные дядьки ломают программы (не просты перебором, нет)- и вот уже на файлообменникакх появляются сломанные проги с генератором ключей, каждый из которых построен по определённым правилам (и прога проверяет наличие этих правил, (и их очень трудно найти, эти правила, безусловно) если они соблюдены, ключ подходит. Прога взломана, а в нашем случае чел зашёл под рутом или ещё кем.) Я сам один раз так крякнул простенькую прогу. Естественно, работаешь с отладчиком на уровне ассемблера, как без этого?
Думаю, вышесказанное можно применить и к паролям
Во-вторых, глубоко не копал, но...
MySQL насколько я понимаю, распространяется по лицензии GPL?
Берём исходные коды
Смотрим PASSWORD
НУ и всё, собсно. Изучаем, используем, правим...
Неактивен
Я и так Вам расскажу, что PASSWORD == (SHA1(SHA1)). И что это Вам даст?
Неактивен
тему прикрывать не спешат...
Темы у нас обычно не закрывают.
Умные дядьки ломают программы...
Вы опять же путаете случай программы, где ключ/пароль генерируется автоматически какому-то алгоритму и случай, когда пароль генерируется безо всяких правил из головы или как-то еще. Такой пароль можно совершенно произволен и в общем случае не подчиняется никаким правилам, поэтому его можно только украсть или подобрать.
Неактивен
Вижу непонимание.
Итак, имеем действительно случайным образом сделанный пароль: 542
Подумаем, как его зашифровать. Введём простое правило: зашфрованнывй пароль (читай: контрольная сумма) пусть будет числом- суммой всех цифр пароля. Тогда зашифрованный пароль есть 11 (5+4+2)
И вот он уже сгенерирован НЕСЛУЧАЙНЫМ ОБРАЗОМ.
Теперь имеем заштфрованный пароль (11), имеем правило, согласно которому он образуется (он есть сумма всех чисел пароля) и будем один за одним генерировать рабочие пароли
56, 74, 119 и так далее.
Так что, как видим, рабочий пароль (не оригинальный, но от этого менее рабочим не ставший) не подобран перебором, а именно найден.
Повторюсь, в чём главная проблема, (впрочем, решаемая, ибо умные дядьки всё-таки ломают программы.)
Нужно найти сгенерированный пароль и правила его создания. Отладчик в руки и вперёд.
НУ, вот. А учитывая, что MySQL прога с открытым исходным кодом, узнать работу (те самые пресловутые правила) password достаточно легко. Отнросительно чего я и выражаю своё недоумение второй раз.
Неактивен
Нужно найти сгенерированный пароль и правила его создания.
Какие в общем случае правила создания пароля?
Вы снова путаете шифрование пароля и его генерацию по какому-то алгоритму. В MySQL (да и не только) нет никакой генерации. Пароль Вы выбираете произвольно. При соединении сервер принимает пароль и применяет к нему шифрование. Вот и всё.
Очевидно, что если Вы по каким-то причинам знаете пароль, сервер примет его в любом случае.
Неактивен
Второй раз кликнул он рыбку.
Беспокойно синее море.
Приплыла к нему рыбка,
Молвит: SHA1, SHA1 сломайте.
Ну правда, для того, чтобы взломать SHA1 (зная сам хэш), Вам нужно
потратить или несколько лет на PC или ~недели на большом кластере,
который будет ломать Ваш пароль. Те люди, которым могут быть интересны
Ваши секреты, не обладают такой технической возможностью. Те, кото-
рые обладают, — им плевать на Ваши секреты. Тем более, что хэш никогда
не покидает хранилища БД.
А специальные коллизии в SHA1 еще никто не придумал, как сделать.
Впрочем, попробуйте
Неактивен