русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Шифрование данных


Дата добавления: 2015-06-12; просмотров: 691; Нарушение авторских прав


Шифрованием называется процесс преобразования данных в формат, в котором они могут быть прочитаны только предполагаемым получателем сообщения. Получатель расшифровывает данные при помощи ключа или секретного пароля. РНР поддерживает несколько алгоритмов шифрования. Шифрование данных в Web имеет смысл только в том случае, если сценарии, в которых используются средства шифрования, работают на защищенном сервере. Поскольку РНР является сценарным языком, работающим на стороне сервера, перед шифрованием данные должны быть отправлены на сервер в простом текстовом формате. Если данные передаются через незащищенное соединение, существует немало способов перехвата этой информации в процессе ее пересылки от пользователя на сервер (http://www.apache-ssl.org).

Приведем некоторые функции.

string md5(string строка) хэширующий алгоритм MD5 используется для создания цифровых подписей, позволяющих однозначно идентифицировать отправителя. MD5 является алгоритмом «одностороннего» хэширования; это означает, что данные, хэшируемые функцией md5(), восстановить уже невозможно. Алгоритм MD5 также применяется при проверке паролей. Поскольку теоретически невозможно восстановить исходную строку, обработанную алгоритмом MD5, можно хэшировать пароль функцией md5( ) и затем сравнивать зашифрованный пароль с результатом обработки пароля, введенного пользователем при попытке получения доступа к конфиденциальной информации.

Допустим, имеется некоторый секретный пароль toystore с хэш-кодом 745e2abd7c52eeldd7cl4aeOd71b9d76. Хэшированное значение сохраняется на сервере и сравнивается с хэш-эквивалентом пароля, введенного пользователем. Даже если злоумышленник получит доступ к зашифрованному паролю, это ни на что не повлияет, поскольку он не сможет восстановить по нему оригинал.

Пример хэширования строки.



$val = "secret";

$hash_val = md5 ($val);

// $hash_val = "Clab6fb9182fl6eed935bal9aa830788";

string cкypt(string строке [, детерминант]) - одностороннее шифрования данных: данные могут только шифроваться. Первый параметр определяет строку, шифруемую функцией. Необязательный второй параметр определяет алгоритм, используемый при шифровании. Точнее, тип алгоритма определяется длиной детерминанта. Различные типы алгоритмов и длины (в скобках) их детерминантов: CRYPT_STD_DES (2), CRYPT_EXT_OES (2), CRYPT_MD5 (12), CRYPT BLOWFISH (12).

Пример применение функции crypt (STD_DES) для хранения и сравнения паролей

$user_pass = "123456";

// Выделить первые два символа $user_pass и использовать их в качестве детерминанта.

$salt = substr($user_pass. 0, 2);

$crypt1 = crypt($user_pass, ;salt); // Зашифровать и сохранить пароль.

// $crypt1 = "12tir.zIbWQ3c"

//... пользователь вводит пароль

$entered_pass = "123456";

$salt1 = substr($crypt, 0, 2); // Получить первые два символа хранящегося пароля

// Зашифровать $entered_pass, используя $saltl в качестве детерминанта.

$crypt2 = crypt($entered_pass, $salt1);

// $crypt2 = "12tir.zIbWQ3c" Следовательно. $cryptl = $crypt2

Функция md5()обеспечивает лучшую защиту.

Функция mhash( ) поддерживает несколько алгоритмов хэширования, которые позволяют разработчикам использовать контрольные суммы и разнообразные цифровые подписи в приложениях РНР. Хэши также используются для хранения паролей (http://mhash.sourceforge.net).

Mcrypt - популярный пакет шифрования данных в РНР, обеспечивающий возможность двустороннего шифрования (то есть собственно шифрование и расшифровку данных). Имеется четыре режима шифрования СВС, СFВ, ЕСВ, OFB.



<== предыдущая лекция | следующая лекция ==>
Проблемы конфигурации | Аутентификация пользователя


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.448 сек.