Привет!
Есть файл, закодированный с помощью RC4.
Файл гарантированно валидный.
Я написал простенький дешифровщик на Perl с помощью
враппера в libgcrypt.
Вот этот скриптик:
###############################################################
#!/usr/local/bin/perl
use strict;
use Crypt::GCrypt;
my $cipher = Crypt::GCrypt->new(
type => 'cipher',
algorithm => 'arcfour',
mode => 'stream'
);
$cipher->start('decrypting');
$cipher->setkey('dima');
binmode STDOUT;
binmode STDIN;
my $size = $ENV{'DECRYPT_SIZE'};
my $buf;
my $rc;
while($rc = sysread(STDIN, $buf, $size))
{
my $plaintext = $cipher->decrypt($buf);
}
print STDERR "RC = '$rc' ($!)\n" unless defined $rc;
###############################################################
Как видно, размер буфера для чтения задается с помощью переменной
окружения DECRYPT_SIZE.
Далее прочитанный кусок закодированного файла передается в
библиотечный вызов.
Вот что я получаю при изменении размера буфера чтения от 1 до 9:
krivenok@develop ~/work/misc/crypt $ for ((i=1;i<10;i++)) do export DECRYPT_SIZE=$i && echo "*** $i ***" && cat file.rc4 | ./decoder_test.pl ; done
*** 1 ***
*** 2 ***
panic: sv_setpvn called with negative strlen at ./decoder_test.pl line 25.
*** 3 ***
*** 4 ***
panic: sv_setpvn called with negative strlen at ./decoder_test.pl line 25.
*** 5 ***
*** 6 ***
*** 7 ***
panic: sv_setpvn called with negative strlen at ./decoder_test.pl line 25.
*** 8 ***
*** 9 ***
krivenok@develop ~/work/misc/crypt $
Для буфера размером 1,3,5,6,8 и 9 байт всё ОК.
А для 2,4 и 7 байт вылезает какая-то ошибка (внутри библиотеки).
Основной вопрос следующий:
Могу ли я подсовывать дешифровщику шифрованный текст кусками любого
размера? Имеется ввиду с точки зрения алгоритма RC4.
Или я должен на вход дешифровщика подавать куски того же размера,
что и на выходе шифровщика (это работает - проверено опытным путем)?
Размер при этом естественно может быть переменным.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Gentoo, Stage2 и MC. Что делаю не правильно? (2008)
- Форум Пример дешифровки прошивки (2016)
- Форум Задача на дешифровку. (2014)
- Форум Gentoo переезд с 13 на 17 профиль (2018)
- Форум Failed to emerge dev-java/oracle-jre-bin-1.7.0.71 (2014)
- Форум Gentoo Установка/обновление КриптоПРО CSP v.2 (2025)
- Форум WineGame 0.1-rc4 & Winestuff 0.1-rc4 (2010)
- Форум XTBL дешифровка на суперкомпьютере (2015)
- Форум [Шифр Цезаря] Способы дешифровки (2011)
- Форум RC4 или AES (2025)