Задача: Требуется что бы строка, зашифрованная элементарным XOR
алгоритмом в реализации на Си, можно было бы расшифровать в Perl
реализации и наоборот. Нижеприведенный код Perl алгоритма с этим не справляется :(
Реализация на Си:
VOID CryptData(IN PSTR pData,IN DWORD dwDataLen,IN BYTE bCrypt)
{ //Simple crypt :-)
PSTR Key = CRYPT_STR;
DWORD i,j,Len = strlen(CRYPT_STR);
for(i=0,j=0;i<dwDataLen;i++,j++){
if(j == Len)j = 0;
pData[i] ^= Key[j];
}
}
Реализация на Perl (не работает для Си алгоритма)
# \$Data
sub CryptData
{
my $Data = ${$_[0]};
my @Key = unpack("C*",$CRYPT_STR);
${$_[0]} = pack("C*", map { my $c = shift @Key; push @Key, $c; $_ ^ $c } unpack("C*", $Data));
}
Замечания:
1. Строка CRYPT_STR равна строке $CRYPT_STR
2. bCrypt не используется
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Отлаживаю кодогенератор (2021)
- Форум Почему не работает скрипт? (2013)
- Форум Реализация итеративного алгоритма Витерби (2007)
- Форум [Perl][Сессии] Алгоритм авторизации. (2010)
- Форум Реализация dirname на perl (2005)
- Форум Описание и реализация HPC алгоритмов (2015)
- Форум Придумать алгоритм для реализации на ассемблере (2013)
- Форум Эффективная реализация экранирования в Perl (2005)
- Статьи Линукс, ассемблер и X11 (2023)
- Форум где можно найти алгоритмы и реализацию ГОСТов ... (2006)