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

seva2

Партнер PHPClub.ru
Шифрование данных?

Есть необходимость защифровать цифровую информацию и записать в куки, а в дальнейшем считыватьт и расшифровывать... Как лучше всего это сделать, чтобы посторонний человек не смог расшифровать?
 

Breeze

goshogun
Команда форума
Партнер клуба
Не писать эту информацию в куки
 

Alexandre

PHPПенсионер
http://php.net/mcrypt - поточные или блочные алгоритмя
лучше поточные, так как блочный алгоритм - как правило, блок должен составлять 256 байтов и более...
но поточный медленнее работает.

да - и еще - по результату шифрования надо пройтись base64, прежде чем писать в куку.
 

seva2

Партнер PHPClub.ru
1) Попытал потестить функции пишет:
Call to undefined function: mcrypt_ecb()

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

2)
CBC mode
CFB mode

Я так понимаю это алгоритмы? А то из них потоковые, а что блочные?
 

magic

lancer
1) Попытал потестить функции пишет:
Call to undefined function: mcrypt_ecb()
А модуль у тебя установлен?
Requirements

These functions work using mcrypt. To use it, download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at http://ftp.emini.dk/pub/php/win32/mcrypt/.

As of PHP 5.0.0 you will need libmcrypt Version 2.5.6 or greater.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.
 

seva2

Партнер PHPClub.ru
НУ я понял что он не установлен, у меня вопрос, стоит ли его юзать, или есть более простые и уже встроенные технологии?
 

HraKK

Мудак
Команда форума
Возьми алгоритм шифрования с открытым ключем. И реализуй сам
 

magic

lancer
Автор оригинала: seva2
НУ я понял что он не установлен, у меня вопрос, стоит ли его юзать, или есть более простые и уже встроенные технологии?
СтОит/Не стОит это тебе решать.

Есть и более простые, "встроенные" - md5, crypt. Только они односторонние :)

Вот можешь еще почитать:
Encryption Tutorial
Cryptography Tutorials
PHP's Encryption Functionality
 

seva2

Партнер PHPClub.ru
К сожалению, установка этого программного обеспечения на сервер, находящийся
под нашим администрированием невозможна, т.к. оно несовместимо с нашей
хостинговой средой.

Первый путь отпадает...

Мне нужно именно двусторонее шифрование!

http://pear.php.net/packages.php?catpid=6&catname=Encryption - а из этого двусторонеее какое?
 

seva2

Партнер PHPClub.ru
Crypt_Blowfish один явно видно, но ведь я спросил в качестве советы, что посоветуют люди кто юзал эти решения?
 

phprus

Moderator
Команда форума
seva2
Там как минимум 3 двусторонних алгоритма шифрования. А люди посоветуют использовать несимметричные алгоритмы шифрования, так как они надежнее.
 

Alexandre

PHPПенсионер
seva2 все PHP API базируется на крипто API более низкого уровня, установленного на сервере. Выясни, сперва, что из криптобиблиотек у тебя установленно на хостинге, конкретно, с какими из них собран PHP, то и используй.

Определись из того что есть - что же тебе надо и зачем.

Каждый алгоритм имеет свои преимущества и недостатки. Наиболее вероятный ответ - для твоих целей подойдет любой блочный симметричный алгоритм.
 

dron4ik

Новичок
seva2, Crypt_Blowfish не требует никаких дополнительных модулей PHP, если есть, то хорошо, нет - всё равно будет работать.
Простое в использовании.

Шифрую им куки, оч. нравиться.
 

seva2

Партнер PHPClub.ru
Из общесистемных библиотек установленно следующее:

libmcrypt-2.5.7_1
pgp-6.5.8_1

Расширения Perl'a

p5-Crypt-PasswdMD5-1.3

Вот что сказали есть
 

dron4ik

Новичок
2 Alexandre: Ничего! Они рекомендованы (mcrypt), но не обязательны. В случае отсутствия mcrypt шифрование происходит на основе исходников Blowfish.

Короче, seva2 тебе надо попробовать - разбираться 15 минут.
 

Alexandre

PHPПенсионер
как я вижу php-mcrypt - отсутствует, плохо.
p5-Crypt-PasswdMD5-1.3 - только одностроннее шифрование
dron4ik как я вижу и p5-Crypt-Blowfish_PP-1.12 отсутствует... Ну не писать же человеку интерфейс на сях...

может стоит задуматься о смене провайдера
 

dron4ik

Новичок
ррррррр

программист я хреновый, честно признаюсь. Но я совсем не могу понять зачем:
" интерфейс на сях..."

у меня вот так это реализовано:
// подключили
require_once 'Crypt/Blowfish.php';

// создали ключ
$b = new Crypt_Blowfish('key');
$key = md5("blabrewlabla234");
$b->setKey($key);

//зашифровали
$crypt_cookie = $b->encrypt($plain);

//расшифровали
$proverka = trim($b->decrypt(urldecode($crypt_cookie)));

всё.
 
Сверху