Forum Webscript.Ru

Программирование => Perl => Тема начата: ilanva от 22 Мая 2002, 13:34:45

Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 13:34:45
Вопрос вот какой:

use Digest::MD5  qw(md5 md5_hex md5_base64);
$text = md5($text);
#или
#$text = md5_hex($text);
#или
#$text = md5_base64($text);

Таким образом данные шифруются.
Как их теперь разшифровать?
Название: шифрование данных и разшифрование
Отправлено: NeoNox от 22 Мая 2002, 13:55:13
Судя из названия (Perl interface to the MD5 Algorithm) то никак. Только перебором (причем используя этот алгоритм).
Если нужно и шифровать и дешифровать то это к стандартному Base64.
Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 14:13:00
Тогда какой модуль лучше выбрать?
И еще, есть ли какой-нибудь модуль для шифрования, в котором для шифрования можно було бы использовать пароль(ключ) для этого, а не просто шифрование по какому-то алгоритму?
Название: шифрование данных и разшифрование
Отправлено: NeoNox от 22 Мая 2002, 14:24:13
Цитировать
Тогда какой модуль лучше выбрать?

Задачу опиши.
Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 14:35:04
Я формирую текст, который потом заливается на сервер в шифрованый текстовый файл.
В дальнейшем у меня должна быть возможность читать данные из этого файла.
Название: шифрование данных и разшифрование
Отправлено: NeoNox от 22 Мая 2002, 14:37:49
Цитировать
Я формирую текст, который потом заливается на сервер в шифрованый текстовый файл.

Подожди, в зашифрованый файл или зашифрованая информация в обычный файл?
Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 14:42:34
зашифрованая информация в обычный файл :)
Название: шифрование данных и разшифрование
Отправлено: Evgeny от 22 Мая 2002, 14:56:02
Цитировать
зашифрованая информация в обычный файл

Тогда MD5 не подходит. Это если бы тебе пароли передавать например надо, а ты их открытым текстом передавать не хочешь - тогда MD5. Сервер тоже кодирует известный ему пароль этим методом, а потом сравнивает результат с тем, что пришёл от тебя, и тогда говорит ДА/НЕТ. Примерно так.
Название: шифрование данных и разшифрование
Отправлено: NeoNox от 22 Мая 2002, 15:00:58
Если сходу-используй MIME::Base64.
Правда, должен понимать, что если есть функция дешифрации то кто нибудь еще сможет прочитать содержимое.
Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 15:04:22
Я нашел в Инете такие модули для шифрования:
Crypt::Blowfish
Crypt::DES
Crypt::CipherSaber
Если кому надо, пользуйтесь.
Похоже то что надо :)
Название: шифрование данных и разшифрование
Отправлено: NeoNox от 22 Мая 2002, 15:13:07
Цитировать
Crypt::Blowfish
Crypt:: DES
Crypt::CipherSaber

:) Потом расскажешь как данные из файла вытаскивал...
Название: шифрование данных и разшифрование
Отправлено: ilanva от 22 Мая 2002, 15:29:14
Ок.
Как только разберусь опишу.
Хотя третий имеет возможность шифровать сразу файл.
Название: шифрование данных и разшифрование
Отправлено: ilanva от 27 Мая 2002, 16:10:54
Цитировать
Потом расскажешь как данные из файла вытаскивал...

use Crypt::CBC;
use Crypt::Blowfish;
my $key = \'ключ\';
my $upload_dir = \'папка для заливки\'; #внимательно с правами
my $upload_file = \'имя файла\';
my $cipher = new Crypt::CBC(\'$key\',\'Crypt::Blowfish\');
open(OUT,">$upload_dir/$upload_file");
$cipher->start(\'encrypting\');
print OUT $cipher->crypt("текст для шифрования1");
print OUT $cipher->crypt("текст для шифрования2");
print OUT $cipher->crypt("текст для шифрования3");
close(OUT) ;
$cipher->finish();
А это для дешифрации
open(CFILE,"$upload_dir/$upload_file");
$cipher->start(\'decrypting\');
print $cipher->crypt($_) while ;
$cipher->finish();