![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шифрование -- чем?
Человек © (2011-10-11 19:12:00)Никогда раньше не сталкивался с шифрованием.
Возникла задача: шифровать в программе на Delphi строку, а затем ее расшифровывать на сервере в PHP (и наоборот, шифровать из PHP, а расшифровывать на Delphi). По любому надежному алгоритму.
Какие библиотеки использовать, чтобы работало и там и там? Буду особенно признателен за примеры.
Человек (2011-11-27 11:55:00) [1]Удалено модератором
Примечание: Обсуждения модерирования
Человек (2011-11-27 11:55:00) [2]В общем, проблема в том, что резульатат шифрования строки с помощью TurboPower LockBox по любому алгоритму с любыми параметрами не совпадает с результатом шифрования на PHP с использованием этого же алгоритма с этими же параметрами. Хотя, теоретически, должен.
Куда копать -- не знаю, отладить алгоритм шифрования возможным не представляется.
Человек (2011-11-27 06:37:00) [3]Итак, решил я использовать известный TurboPower LockBox.
Поставил последнюю версию отсюда: http://sourceforge.net/projects/tplockbox/
Скомпилировал их демку. Все в порядке, нормально кодирует-раскодирует любым алгоритмом.
Затем решил проверить возможность кодирования/раскодирования этого в PHP. Сначала сам написал пару функций, но вместо раскодирования получал кракозябры. Решив, что, возможно, что-то делаю неправильно, взял первую попавшуюся онлайн-тулзу для раскодирования и проверил на ней: http://www.tools4noobs.com/online_tools/decrypt/.Так вот, раскодирование строки, зашифрованной LockBox не работает ни для какого алгоритма ни в одном режиме. Поулчаются кракозябры.
Пожалуйста, объясните, что я делаю не так. И у кого проблема в шифровании: в TP LockBox, в PHP или во мне.
DiamondShark (2011-10-22 12:46:00) [4]Удалено модератором
Eraser (2011-10-13 18:59:00) [5]> [17] Человек (12.10.11 17:58)
там же примеры есть. по крайней мере раньше были, сейчас не проверял. очень просто в использовании.
Cobalt (2011-10-13 10:06:00) [6]Кейлоггер актуальнее ;-)
plr (2011-10-12 18:45:00) [7]Добавлю свои 5 копеек про HTTPS, оно конечно решает вопросы при снифе в сети между приложением и сервером. Но при использовании, например, http://www.ieinspector.com/мы видим весь трафик, что шлёт приложение.
Проверял на многих приложениях - прекрасный man in the middle.
Dennis I. Komarov (2011-10-12 18:09:00) [8]Любое создание программ использующих СКЗИ требует обязательного лицензирования. За такое дело могут не кисло погладить по голове, если кончено сочтут Вас достойными, чтобы обратить свое внимание...
Человек (2011-10-12 17:58:00) [9]
Rouse_ © (12.10.11 10:27) [15]
> Ну например вот эту: http://www.cityinthesky.co.uk/opensource/DCPcryptт.
> к. все алгоритмы стандартизированы подойдет любая сторонняя
> реализация.
К сожалению, именно эту и пытался использовать, перед тем. как задать вопрос. Судя по всему, она для ранних, не-юникодных версий Delphi, т.к. их же демо после перекомпиляции не работает (строка, зашифрованная на Delphi, не расшифровывается на PHP, и наоборот).
> Eraser © (12.10.11 15:45) [16]
> Можно еще глянуть http://sourceforge.net/projects/tplockbox/
> опять развивается.
Пытался использовать и его, но он показался мне совсем непонятным. В деме куча непонятного мне кода, вызова кучи функций с кучей переменных. А хотелось бы просто чего-то вроде функций Decode(строка, ключ) и Encodе(строка, ключ). Или я многого хочу и надо разбираться и вникать во все эти алгоритмы?
Eraser (2011-10-12 15:45:00) [10]> [7] Человек (11.10.11 23:17)
> А если все же шифровать вручную, какую библиотеку Delphi
> лучше использовать?
MS Crypto API. Правда там скорее всего придется с ключами возиться. Можно еще глянуть http://sourceforge.net/projects/tplockbox/опять развивается.
Rouse_ (2011-10-12 10:27:00) [11]
> А если все же шифровать вручную, какую библиотеку Delphi
> лучше использовать? Цель -- полная совместимость с PHP-шифрованием.
Ну например вот эту: http://www.cityinthesky.co.uk/opensource/DCPcrypt
т.к. все алгоритмы стандартизированы подойдет любая сторонняя реализация.
> И еще, хранить ключ в виде строковой константы в программе
> -- безопасно?
Если используется асинхронные алгоритмы - безопасно (только длина должна быть достаточно большая, желательно от 2048 и выше)
Ega23 (2011-10-12 09:07:00) [12]
> А то.
Когда я его "щупал" этого не было. Растут.
Омлет (2011-10-12 08:44:00) [13]Плюс crypt() и Mcrypt.
Омлет (2011-10-12 08:41:00) [14]Удалено модератором
Омлет (2011-10-12 08:41:00) [15]> Ega23 © (11.10.11 23:59) [9]
> В PHP разве встроены функции симметричного и асимметричного
> шифрования?
А то. http://pear.php.net/packages.php?catpid=6&catname=Encryption
Германн (2011-10-12 00:36:00) [16]
> снифферы - смотря какой сниффер, запущенный локально и написанный
> под заказ - данные сможет снять.
<offtop>
Выглядит как предложение дать ТЗ и озвучить гонорар. :)
</offtop>
Ega23 (2011-10-11 23:59:00) [17]
> И еще, хранить ключ в виде строковой константы в программе
> -- безопасно?
Открытый - вполне безопасно. :)
> Цель -- полная совместимость с PHP-шифрованием.
В PHP разве встроены функции симметричного и асимметричного шифрования?
sniknik (2011-10-11 23:35:00) [18]> требуется установка сертификата в систему.
не обязательно, можно просто держать файлы рядом...
> хранить ключ в виде строковой константы в программе -- безопасно?
хоть вообще без ключа... он нужен только при авторизации, определения "подлинности" клиента, если этого не нужно то... на шифрацию не влияет.
Человек (2011-10-11 23:17:00) [19]
> Rouse_ © (11.10.11 22:54) [5]
А если все же шифровать вручную, какую библиотеку Delphi лучше использовать? Цель -- полная совместимость с PHP-шифрованием.
И еще, хранить ключ в виде строковой константы в программе -- безопасно?
Человек (2011-10-11 23:15:00) [20]Для HTTPS, как я понял, требуется установка сертификата в систему. Это можно делать без прав администратора и незаметно для пользователя?