|
|
|
| Я не нашёл функции шифрования с двумя ключами на PHP. Это так и должно быть?
Её не включают в состав пакета из принципиальных соображений или просто пока
не сочинили? В новых версиях её не ожидается? Кто знает? | |
|
|
|
|
|
|
|
для: Eugene77
(15.10.2007 в 19:55)
| | Есть такая библиотека mcrypt. | |
|
|
|
|
|
|
|
для: Саня
(15.10.2007 в 21:16)
| | В том-то и дело, что шифрования с двумя ключами именно в этой библиотеке
я почему-то не встретил.
Почему? | |
|
|
|
|
|
|
|
для: Eugene77
(16.10.2007 в 18:23)
| | В mcrypt вроде его и нет, посмотрите http://php.net/openssl | |
|
|
|
|
|
|
|
для: kasmanaft
(16.10.2007 в 18:49)
| | >В mcrypt вроде его и нет, посмотрите http://php.net/openssl
Там всё базируется, если я правильно понял на получении откуда-то
одного из парных ключей. То есть ключ покупать надо,
а собственного механизма генерации пар не предусмотрено.
Или я не правильно понял?
Сане и Евгению Петрову:
Верно, такой подход вполне уместен, но для другой ситуации.
Меня интересуют парные ключи. То есть когда для шифрации и дешифрации
нужны разные ключи впридачу ещё и не выводимые друг из друга. | |
|
|
|
|
|
|
|
для: Eugene77
(17.10.2007 в 13:53)
| | Нет, разве openssl_pkey_new() не оно?
OpenSSL бесплатная весч, опенсурсь.. вряд ли там нужно что-либо покупать. | |
|
|
|
|
|
|
|
для: kasmanaft
(17.10.2007 в 15:33)
| | SSL бесплатная, но вот выдача ключей - вещь платная, если сайт с "лицензионным" ключом набедокурил - ключ блокируется, а владелец теряет деньги - это снижает вероятность злоупотреблений. Можно самому сгенерировать ключ, однако, браузер будет всегда выдвать окно - готовы ли вы посетить этот сайт без "лицензионного" ключа. | |
|
|
|
|
|
|
|
для: Eugene77
(16.10.2007 в 18:23)
| | А почему бы не шифровать 2 раза строку по 2-м разным ключам? | |
|
|
|
|
|
|
|
для: 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_DES, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypt = mcrypt_encrypt(MCRYPT_DES, $key1, $text, MCRYPT_MODE_ECB, $iv);
$crypt = mcrypt_decrypt(MCRYPT_DES, $key2, $crypt, MCRYPT_MODE_ECB, $iv);
$crypt = mcrypt_encrypt(MCRYPT_DES, $key3, $crypt, MCRYPT_MODE_ECB, $iv);
echo "Зашифровали: ".$crypt."<br/>";
$source = mcrypt_decrypt(MCRYPT_DES, $key3, $crypt, MCRYPT_MODE_ECB, $iv);
$source = mcrypt_encrypt(MCRYPT_DES, $key2, $source, MCRYPT_MODE_ECB, $iv);
$source = mcrypt_decrypt(MCRYPT_DES, $key1, $source, MCRYPT_MODE_ECB, $iv);
echo "Расшифровали: ".$source;
|
| |
|
|
|
|
|
|
|
для: Саня
(17.10.2007 в 00:26)
| | "шифрование с двумя ключами" - одним ключем зашифровываем, другим расшифровываем.. А не по принципу чем больше ключей, тем круче =)
Кстати, википедия сказала, что DES - симметричный алгоритм, то есть не то, что нужно.
UPD оу.. не заметил mcrypt_get_iv_size(), может чего не того ляпнул.. По правде говоря, не очень разбираюсь во всяких криптоштучках.. | |
|
|
|
|
|
|
|
для: Eugene77
(15.10.2007 в 19:55)
| | Можно самому сгенерировать ключ, однако, браузер будет всегда выдвать окно - готовы ли вы посетить этот сайт без "лицензионного" ключа.
Вот это интересно!
Мне ключ надо не для посещения сайта, а для своих внутренних нужд.
Некоторые данные о пользователях, те, которые нужны только в исключительных ситуациях,
я хочу хранить в зашифрованном виде.
Надёжней будет если на сайте у меня будет присутствовать только шифровочный ключ.
А расшифровочный будет лежать дома.
Но как сделать пару ключей?
Самому что ли скрипт сочинять? | |
|
|
|
|
|
|
|
|
для: Саня
(18.10.2007 в 01:03)
| | Ну ладно, спасибо!
Ссылка на авторитет Трианона весьма убеждает.
Теперь ясно, что я ничего не найду.
Спасибо за помощь!
Жалко, что Трианона не видать на форуме!
Он такое огромное влияние на всё тат возымел!
Помню почти все его ответы. | |
|
|
|