У меня есть (старый) экземпляр ejabberd, который все еще использует «внутренний» метод аутентификации. Я установил новый блестящий сервер (включая MySQL) и планирую перейти на него как можно скорее. С тех пор я хотел бы избежать использования Mnesia в качестве базы данных аутентификации.
Поскольку пароли моих пользователей все еще хранятся в базе данных Mnesia, мне нужно импортировать их в (новую) базу данных MySQL на новом сервере. Мне удалось сбросить таблицу «passwd», и она заполнена такими записями:
{passwd,{‹‹"flowie">>,‹‹"server.com">>},
{скрам,‹‹"pHHeHwc5yaarPAshse7Ijuygtre=">>,
<<"4Qiv9ygiMLlzeZXUG6Bpyhygtgr=">>, <<"dylctQFXYGXemMii1Pswe==">>,4096}}
Чтобы иметь возможность правильно импортировать эти записи в базу данных MySQL, мне нужно выяснить, какое поле соответствует какому в таблице пользователей MySQL:
+----------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+-------------------+-------+
| username | varchar(191) | NO | PRI | NULL | |
| password | text | NO | | NULL | |
| serverkey | varchar(64) | NO | | | |
| salt | varchar(64) | NO | | | |
| iterationcount | int(11) | NO | | 0 | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | |
+----------------+--------------+------+-----+-------------------+-------+
6 rows in set (0.00 sec)
Я, очевидно, знаю, что такое поле «имя пользователя» (и я думаю, что могу догадаться, каким будет «счетчик итераций»), но я хочу убедиться, что остальные указаны в правильном порядке.
Одной фразой: в каком порядке поля "пароль", "ключ сервера" и "соль" хранятся в базе данных ejabberd Mnesia ? Где я могу найти информацию об этом? В коде наверное?
Примечание для начинающих хакеров: я изменил значения с помощью генератора случайных символов ;)