LEADERSOFT.ru Разработка на заказ программ и сайтов
Интернет магазин программного обеспечения

500 руб.

ДОРАБОТКА ПРОГРАММ

Если Вам необходимо изменить любую программу, например, добавить или изменить отчет или форму, то это можно сделать по отдельному соглашению.

Перейти к оформлению заказа ...
Любая база данных должна уметь защитить себя. Использование функций хеширования MD5, SHA1, SHA256, позволяет вам правильно организовать защиту паролей в вашей базе данных или подписывать файлы и документы электронными подписями.

Самым распространенным способом защиты данных является их шифрование. Однако этот способ имеет серьезный недостаток, если пароль для дешифровки будет раскрыт, то сразу же можно будет прочитать весь текст документа. Очень серьезный ущерб будет нанесен базе данных, если будут дешифрованы пароли пользователей системы.

Альтернативным способом защиты является хеширование данных. Простой пример. Имеем таблицу пользователей базы (tblUsers), где определены 2 ключевых поля: Login и Password для входа в базу данных. Проведем регистрацию и проверку пользователя User1 в программе, используя алгоритм MD5:

1. Алгоритм регистрации в базе данных

а) Пользователь входит в программу и заполняет поля: Login=User1, Password =P1.
б) Мы связываем эти 2 строчки в одну: Login + Password  = User1P1
в) Далее рассчитываем хэш функцию MD5(User1P1) = fa37bf44d140f827a3cd79da9f350eb3
д) В таблицу пользователей (tblUsers) в поле Login пишем User1, а поле Password !!! не пароль, а хэш строку, т.е. значение fa37bf44d140f827a3cd79da9f350eb3

2. Алгоритм проверки в базе данных

а) Другой пользователь входит в программу и заполняет поля: Login=User1, Password =P5 (неправильный пароль).
б) Мы связываем эти 2 строчки в одну: Login + Password  = User1P5
в) Далее рассчитываем хэш функцию MD5(User1P5) = 9e52b49ccadbd629d2637166e915205e
г) Сравниваем поле tblUsers.Password (fa37bf44d140f827a3cd79da9f350eb3) и текущий результат 9e52b49ccadbd629d2637166e915205e. Эти строки не равны, значит пароль неправильный и закрываем ему вход в базу данных.

Выводы.

Данный способ хранения паролей в базе данных обеспечивает нам надежный уровень защиты, а именно, ПАРОЛИ НЕ ХРАНЯТСЯ в таблице, и нет единого ключа для их расшифровки.

P.S. Для тех, кто любит более крутые варианты защиты, то можно добавить к алгоритму некоторый постоянный секретный ключ, т.е. строка для хэширования будет состоять из трех частей Login+Password+SecretKey. Это позволит нам пересылать информацию через Интернет по открытым каналам. Так делают все платежные шлюзы: webmoney, Paypal, которые контролируют данные по платежам между сайтом и шлюзом, подписывая их электронной подписью, т.е. хэш строкой. Данные выводы можно проверить ниже, используя алгоритмы MD5,SHA1,SHA256 на сайте, или загрузив пример на Access


  Выберите алгоритм        
  При вводе текста будьте внимательны к кодировкам символов (UTF-8,Windows-1251 и т.п.). Если текст вводится на английском языке, то хэш функция всегда дает правильный результат. На сайте используются готовые функции хэширования из библиотеки NET. Для Microsoft Access приведен полный исходный код на VBA, так что ссылка на внешний ActiveX или DLL не применяется.  
 

  Результат