MySQL в Windows:Использование SHA-2
Вопрос
Мне нужно хранить конфиденциальные данные (имена пользователей и пароли), и я хотел все сделать правильно (сохранить хэши SHA-256 для (пароля).(большое случайное число) вместо паролей с открытым текстом.Это должно быть сделано с использованием MySQL и, насколько я знаю, только MySQL 6 планы чтобы включить SHA-2, следовательно, я предполагаю, что необходимо настроить какое-то внешнее приложение;Я хотел бы создать хранимую процедуру, которая вычисляла бы хэш пароля (объединенный с одноразовым номером) и сохраняла его.
На ваш взгляд, каков был бы наилучший способ реализовать это?Я прочитал здесь несколько сообщений о Stackoverflow и в настоящее время направляюсь к Perl.
Приветствия, Хэл
PS:ОПЕРАЦИОННАЯ СИСТЕМА -> Windows Server 2008
Редактировать:чертов редактор, не показывает правильный текст.Исправлено.
РЕДАКТИРОВАТЬ 2:Я не пытаюсь создать свою собственную версию SHA2, хотя это, безусловно, было бы забавно;мне нужно использовать его в хранимой процедуре, чтобы хэшировать исходный пароль, и я просто не уверен, какой внешний модуль / приложение / библиотеку мне следует использовать.
Решение
Выбранный вами язык, более чем вероятно, обеспечивает реализацию SHA-256.Делай не напишите свою собственную реализацию.Это просто напрашивается на неприятности.
Если бы вы опубликовали, какой у вас язык программирования, я уверен, люди были бы более чем счастливы опубликовать ответ со ссылками на документацию по этому языку.
PS:Если у вас еще нет языка на примете, вот PHP-скрипт, который я написал некоторое время назад:
Ладно, видимо, я его потерял.Но вот более простая версия:
<?php echo hash("sha256", file_get_contents("php://input"))."\n" ?>
И тогда вы можете назвать это так:
php hash.php
Затем введите свою информацию и закройте inpute (ctrl-x?в Windows)
Другие советы
MySQL 5.5 поддерживает SHA2.http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha2