Re[2]: Алгоритм TEA на Perl - нужна помощь !
От: VetabetA  
Дата: 19.09.05 15:58
Оценка:
Большое спасибо за подсказку, разобрался и нашел ошибку :

sub TEA_Decoder

{

use integer;

my @k = (0x12345678,0x12345678,0x12345678,0x12345678); # 128-битный ключ
my $y = $_[0];
my $z = $_[1];

my $sum = 0;
my $delta=0x9e3779b9;
my $n=32;

$sum = $delta << 5 ;
while ($n-- > 0)
{
$z -= (($y << 4) + $k[2]) ^ ($y + $sum) ^ ((0x07FFFFFF & ($y >> 5)) + $k[3]);
$y -= (($z << 4) + $k[0]) ^ ($z + $sum) ^ ((0x07FFFFFF & ($z >> 5)) + $k[1]);
$sum -= $delta;
}

$_[0]=$y;
$_[1]=$z;
}

Я так понял, что приоритет выполнения побитовых операций у C++ и у Perl различается. Поэтому надо было в опеределенных местах дополнительные скобки поставить...

С уважением,
VetabetA
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.