Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Шифрование с двумя ключами на PHP
 
 автор: Eugene77   (15.10.2007 в 19:55)   письмо автору
 
 

Я не нашёл функции шифрования с двумя ключами на PHP. Это так и должно быть?
Её не включают в состав пакета из принципиальных соображений или просто пока
не сочинили? В новых версиях её не ожидается? Кто знает?

   
 
 автор: Саня   (15.10.2007 в 21:16)   письмо автору
 
   для: Eugene77   (15.10.2007 в 19:55)
 

Есть такая библиотека mcrypt.

   
 
 автор: Eugene77   (16.10.2007 в 18:23)   письмо автору
 
   для: Саня   (15.10.2007 в 21:16)
 

В том-то и дело, что шифрования с двумя ключами именно в этой библиотеке
я почему-то не встретил.

Почему?

   
 
 автор: kasmanaft   (16.10.2007 в 18:49)   письмо автору
 
   для: Eugene77   (16.10.2007 в 18:23)
 

В mcrypt вроде его и нет, посмотрите http://php.net/openssl

   
 
 автор: Eugene77   (17.10.2007 в 13:53)   письмо автору
 
   для: kasmanaft   (16.10.2007 в 18:49)
 

>В mcrypt вроде его и нет, посмотрите http://php.net/openssl

Там всё базируется, если я правильно понял на получении откуда-то
одного из парных ключей. То есть ключ покупать надо,
а собственного механизма генерации пар не предусмотрено.
Или я не правильно понял?

Сане и Евгению Петрову:
Верно, такой подход вполне уместен, но для другой ситуации.
Меня интересуют парные ключи. То есть когда для шифрации и дешифрации
нужны разные ключи впридачу ещё и не выводимые друг из друга.

   
 
 автор: kasmanaft   (17.10.2007 в 15:33)   письмо автору
 
   для: Eugene77   (17.10.2007 в 13:53)
 

Нет, разве openssl_pkey_new() не оно?
OpenSSL бесплатная весч, опенсурсь.. вряд ли там нужно что-либо покупать.

   
 
 автор: cheops   (17.10.2007 в 16:06)   письмо автору
 
   для: kasmanaft   (17.10.2007 в 15:33)
 

SSL бесплатная, но вот выдача ключей - вещь платная, если сайт с "лицензионным" ключом набедокурил - ключ блокируется, а владелец теряет деньги - это снижает вероятность злоупотреблений. Можно самому сгенерировать ключ, однако, браузер будет всегда выдвать окно - готовы ли вы посетить этот сайт без "лицензионного" ключа.

   
 
 автор: Евгений Петров   (16.10.2007 в 22:54)   письмо автору
 
   для: Eugene77   (16.10.2007 в 18:23)
 

А почему бы не шифровать 2 раза строку по 2-м разным ключам?

   
 
 автор: Саня   (17.10.2007 в 00:26)   письмо автору
 
   для: Eugene77   (16.10.2007 в 18:23)
 

Вообще это можно сделать при помощи TripleDES, поддержка которой есть в библиотеке, однако я не разобрался как во второй итерации шифрования использовать другой ключ. Но на основе DES можно и самому сделать TripleDES... и даже с тремя ключами:
<?php
$key1 
"12345678";
$key2 "Саня";
$key3 "триплДес";

$text "Meet me at 11 o'clock behind the monument.";
echo 
"Исходный текст: ".$text."<br/>";

$iv_size mcrypt_get_iv_size(MCRYPT_DESMCRYPT_MODE_ECB);
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);

$crypt mcrypt_encrypt(MCRYPT_DES$key1$textMCRYPT_MODE_ECB$iv);
$crypt mcrypt_decrypt(MCRYPT_DES$key2$cryptMCRYPT_MODE_ECB$iv);
$crypt mcrypt_encrypt(MCRYPT_DES$key3$cryptMCRYPT_MODE_ECB$iv);
echo 
"Зашифровали: ".$crypt."<br/>";

$source mcrypt_decrypt(MCRYPT_DES$key3$cryptMCRYPT_MODE_ECB$iv);
$source mcrypt_encrypt(MCRYPT_DES$key2$sourceMCRYPT_MODE_ECB$iv);
$source mcrypt_decrypt(MCRYPT_DES$key1$sourceMCRYPT_MODE_ECB$iv);
echo 
"Расшифровали: ".$source;

   
 
 автор: kasmanaft   (17.10.2007 в 16:29)   письмо автору
 
   для: Саня   (17.10.2007 в 00:26)
 

"шифрование с двумя ключами" - одним ключем зашифровываем, другим расшифровываем.. А не по принципу чем больше ключей, тем круче =)
Кстати, википедия сказала, что DES - симметричный алгоритм, то есть не то, что нужно.

UPD оу.. не заметил mcrypt_get_iv_size(), может чего не того ляпнул.. По правде говоря, не очень разбираюсь во всяких криптоштучках..

   
 
 автор: Eugene77   (17.10.2007 в 17:11)   письмо автору
 
   для: Eugene77   (15.10.2007 в 19:55)
 

Можно самому сгенерировать ключ, однако, браузер будет всегда выдвать окно - готовы ли вы посетить этот сайт без "лицензионного" ключа.

Вот это интересно!
Мне ключ надо не для посещения сайта, а для своих внутренних нужд.
Некоторые данные о пользователях, те, которые нужны только в исключительных ситуациях,
я хочу хранить в зашифрованном виде.
Надёжней будет если на сайте у меня будет присутствовать только шифровочный ключ.
А расшифровочный будет лежать дома.
Но как сделать пару ключей?
Самому что ли скрипт сочинять?

   
 
 автор: Саня   (18.10.2007 в 01:03)   письмо автору
 
   для: Eugene77   (17.10.2007 в 17:11)
 

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=25553

   
 
 автор: Eugene77   (18.10.2007 в 17:06)   письмо автору
 
   для: Саня   (18.10.2007 в 01:03)
 

Ну ладно, спасибо!
Ссылка на авторитет Трианона весьма убеждает.
Теперь ясно, что я ничего не найду.
Спасибо за помощь!
Жалко, что Трианона не видать на форуме!
Он такое огромное влияние на всё тат возымел!
Помню почти все его ответы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования