Навигация
 
Главная
Для начинающих
Паскаль/Pascal
Bash

Визуальное программирование
• Visual Basic
• Delphi/Делфи
• C++/Си++/Си
• документация
• Компоненты

WEB программирование
• MySQL/мускул
• Web-дизайн
•• Шрифты
• PHP/Пхп
• Документация PHP
• JavaScript
•• библиотека jquery
•  Документация
Прочее

 
 
Поиск по сайту
 




 
 
О нас
  У нас Вы можете скачать исходники, скачать скрипты, найти исходники, исходники delphi, документация по JQeury, исходники си, учебник HTML  
 
Теги
  codeserfercom, Linux, nbspnbsp, Private, Visual, Возможность, Пример, Рассмотрим, Сегодня, Теперь, будет, данных, значение, который, может, можно, написать, например, очень, переменной, переменных, пользователя, помощью, программа, программирования, программы, просто, работы, разработки, решил, сделать, скрипт, строки, строку, также, только, функции, число, этого, языка

Показать все теги
 
 
Счетчики
 
 
 
Реклама
   
 
Лучшие коды
   
   
 
Симметричное шифрование в PHP
 Категория: Web-программирование » PHP | автор: Codeserfer | 21 июля 2009 | Просмотров: 4622  



 
Симметричное шифрование появилось самым первым. Для шифрования данных используется ключ, который служит и для дешифровки данных. Самый простой вариант зашифровать строку — выполнить логическую операцию XOR над данными и ключом. Для расшифровки требуется повторить операцию.
Какой бы сложный алгоритм вы ни использовали, у симметричного шифрования есть несколько очень серьезных недостатков:
1) Один ключ используется для шифрования и дешифрования. Таким образом, отправитель и получатель зашифрованных данных должны обладать одним и тем же ключом. А как обменяться ключами через Интернет, когда эта связь открытая? Допустим, что вы хотите пообщаться со своим другом из другого города по электронной почте, не боясь, что кто-то подсмотрит вашу переписку. Один из вас должен придумать или сгенерировать ключ, с помощью которого будет происходить шифрование, и выслать через e-mail своему корреспонденту. Если ключ не был перехвачен, то последующие зашифрованные сообщения можно считать болееменее закрытыми, но если письмо с ключом было перехвачено, то шифрование становится бессмысленным.
2) Хакеры утверждают (и этому достаточно исторических подтверждений), что информация, известная двоим, может стать доступной всем. Есть много способов получения нужной информации с помощью социальной инженерии.
И все же, симметричному шифрованию можно найти множество эффективных применений. Например, шифрование данных на сервере. Допустим, что необходимо зашифровать какой-либо документ, чтобы хакер, взломав сервер, не смог увидеть его содержимое. Документ не будет передаваться по сети, а значит, никому не нужно отдавать ключ, поэтому перехватить его не удастся.
К наиболее распространенным алгоритмам симметричного шифрования относятся DES, 3DES, Blowfish, CAST 128 и т. д. Самый простой способ зашифровать данные — воспользоваться функцией mcrypt_ecb (), которая принимает четыре параметра:
• константу, указывающую на алгоритм. Интерпретатор РНР для шифрования использует библиотеку libmcrypt, которая поддерживает большое количество алгоритмов, поэтому рассматривать их все нет смысла, но основные константы знать необходимо:
• MCRYPT_DES - алгоритм DES;
• MCRYPT_3DES - алгоритм 3DES;
• MCRYPT_BLOWFISH - алгоритм Blowfish;
• MCRYPT_CAST128 - алгоритм Castl28;
• MCRYPT_CAST256 - алгоритм Cast256;
• ключ;
• данные для шифрования;
• режим. Здесь можно указать одно из двух значений:
• MCRYPT_ENCRYPT — зашифровать данные;
• MCRYPT_DECRYPT — расшифровать.
Рассмотрим простейший пример шифрования по алгоритму DES:
<?php
$кеу="это КЛЮЧ";
$text="Сообщение, которое должно быть зашифровано";
$str=mcrypt_ecb(MCRYPT_DES, $key, $text, MCRYPT_ENCRYPT);
?>

В результате в переменной $str будет сохранен зашифрованный текст нз переменной $text. Чтобы расшифровать данные, нужно использовать тот же ключ и ту же функцию, но в качестве третьего параметра передать зашифрованный текст, а в качестве последнего — константу MCRYPT_DECRYPT:
<?php
$decrypted_str=mcrypt_ecb(MCRYPT_DES, $key, $str,
MCRYPT_DECRYPT);
?>
 
 

Что-то не получается? Не понятна какая-то часть кода? Напишите комментарий об этом и мы обязательно Вам все объясним!
Обязательно напишите отзыв о программе / учебнике. Для выражения благодарностей есть кнопка:


Своё Спасибо, еще не выражали.
 
  Просьбы перезалить в комментариях принимаются
 
 (голосов: 4)
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
  Другие коды по теме:  
 
  • Шифрование паролей
  • Сортировка массива в одни цикл
  • шифровка текста под пароль
  • Добавление первичного ключа в базу
  • Комплексная защита сервера
  •  
    Комментарии (1) Распечатать




     Написал: ALLcat
     9 сентября 2009 16:55 | ICQ: --
     

    Группа: Гости
    Регистрация: --
    Спасибо!
     
     Публикаций: 0 | Комментариев: 0


    © 2008 - 2010. Копирование материалов запрещено!
    Мой аккаунт
     
    Логин
    Пароль
     
     
     
    Опрос
     
    Какой архиватор используете вы?

    WinRAR
    WinZip
    7-zip
    CabTools
    Сижу на linux, все в .rpm .deb
    Другой
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама