[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: найти алгоритм шифрования по таким критериям
Страницы: 1, 2
tetetz
да башня уже не варит просто smile.gif
tetetz
на javascript зделал ) всем спасибо ) уже ничего не надо )
Joker
покажи а то интересно)))
tetetz
этот же код работает и в жабаскрипте ) тока там оператор конкатенации поменять нужно )
sergeiss
Цитата (tetetz @ 5.06.2009 - 20:35)
этот же код работает и в жабаскрипте ) тока там оператор конкатенации поменять нужно )

Почему ты говоришь "и в жабаскрипте"? Ты же привел как раз код на нём smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
tetetz
я скрипт достал из флешки)
jetistyum
хм... тут математики нужны.... у простого человека моцк может перегреться... вы там поаккуратнее
twin
Это акшен(as), он на js очень похож впринципе, но работает во флэш-плэере

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ломастер
ohmy.gif
Ну нифига себе !
А я думал, что я первый эту флэшку ломаю )))
Сам когдато вскрыл эту флэшку, код уже давно валялся.
- код 1 в 1 ! (называть, где работает эта флешка не буду, ато буит взрыв)
Аналогичная ситуация, только мне както харит разбираться с самим алгоритмом, я попытаюсь тупо перегнать основные подпрограммы (4 шт) под PERL
Некоторые функции особенно противные.
Попробуем, а вдруг получится.
-------
П.С.: Буит крутой Бот rolleyes.gif
Ломастер
а как эту строчку адаптировал:
res[i] = Number(src.charCodeAt(i)) ^ i * 4;
- в таком виде в джаве выдаёт ошибку
Ломастер
var str = new String(src);
res[i] = Number(src.charCodeAt(i)) ^ i * 4;
- а в таком виде уже работает )
Ломастер
В общем зделал я эту хренотень на PERL
- работает cool.gif
Ломастер
В связи с неактуальностью (вариант с флешкой недавно был заменён упрощенным вариантом на javascript), публикую перевод этого шедевра на PERL:
#---- uncript 2 pass ----------------------------------------------- 
my $r=1244201195.28292;
my $pas='1111';
#-------------------------------------------------------------------
my @initKey = (232, 179, 9, 49, 17, 182, 147, 22, 67, 153, 48, 202, 41, 89, 251, 31);
my @hex = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
#-------------------------------------------------------------------
sub rijndael
{
my (@src,@ikey);
my ($src,$ikey)=@_;
@src=@$src;
@ikey=@$ikey;

my @sBox = (99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 200, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 50, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22);
my @rCon = (1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108);
my @w;
my @tar;
my @b;
my $i = 0;
my $j = 0;
my $k = 0;
my $l = 0;
my @tmp;
for($i=0; $i<4; $i++)
{
for($j=0; $j<4; $j++)
{
@w[$i*4+$j] = @ikey[$i*4+$j];
} # end of for
} # end of for

for ($i=1; $i<11; $i++)
{
for ($j=0; $j<4; $j++)
{
for ($k=0; $k<4; $k++)
{
@b[$k] = @w[($i - ($j == 0) ? (1) : (0)) * 16 + $k * 4 + ($j == 0 ? (3) : ($j - 1))];
} # end of for
if ($j == 0)
{
for ($k=0; $k<4; $k++)
{
if ($k<3)
{
@b[$k] = @sBox[@b[$k + 1]];
next;
} # end if
@b[$k] = @sBox[0] ^ @rCon[$i];
} # end of for
} # end if
for ($k=0; $k<4; $k++)
{
@w[$i * 16 + $k * 4 + $j] = @w[($i - 1) * 16 + $k * 4 + $j] ^ @b[$k];
} # end of for
} # end of for
} # end of for


for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
@tar[$i * 4 + $j] = @src[$i * 4 + $j] ^ @w[$i * 4 + $j];
} # end of for
} # end of for

for ($i = 1; $i < 4; $i++)
{
for ($l = 0; $l < $i; $l++)
{
@tmp = @tar[$i * 4];
for ($j = 0; $j < 3; $j++)
{
@tar[$i * 4 + $j] = @tar[$i * 4 + ($j + 1) % 4];
} # end of for
@tar[$i * 4 + 3] = @tmp;
} # end of for
} # end of for

if ($k != 9)
{
for ($j = 0; $j < 4; $j++)
{
for ($i = 0; $i < 4; $i++)
{
my $tmp = @tar[$i * 4 + $j] ^ @tar[($i + 1) % 4 * 4 + $j];
@b[$i] = @tar[($i + 1) % 4 * 4 + $j] ^ @tar[($i + 2) % 4 * 4 + $j] ^ @tar[($i + 3) % 4 * 4 + $j] ^ ($tmp > 127 ? ($tmp << 1 ^ 283) : ($tmp << 1));
} # end of for
for ($i = 0; $i < 4; $i++)
{
@tar[$i * 4 + $j] = @b[$i];
} # end of for
} # end of for
} # end if

for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
@tar[$i * 4 + $j] = @tar[$i * 4 + $j] ^ @w[($k + 1) * 16 + $i * 4 + $j];
} # end of for
} # end of for

my $tar;
foreach(@tar){
if($tar>0){
$tar="$tar $_";
}
else{
$tar="$_";
}
}
return ($tar);
} # End of the function
#------------------------------------------------------------------------------
sub md5
{
my @src=split(//,@_[0]);
my @tar=('','','','','','','','','','','','','','','','');
my @res=('','','','','','','','','','','','','','','','');
my ($i,$j);
my $srclength=(@src);

for ($i = 0; $i < $srclength || $i < 16; $i++)
{
# @res[$i] = Number(@src.charCodeAt($i)) ^ $i * 4;

@res[$i]=ord((@src)[$i]) ^ $i * 4;

} # end of for

for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
@tar[$i * 4 + $j] = (@res[$j * 4 + $i] + 256) % 256;
} # end of for
} # end of for
return (@tar);
} # End of the function
#------------------------------------------------------------------------------
sub array2HStr
{
my @src = split(/ /,@_[0]);

my $tmres;
my @res = "";
my $i;
for ($i = 0; $i < 16; $i++)
{

$tmres=sprintf ("%X", @src[$i]);
if (length($tmres)==1){$tmres="0$tmres"};
@res="@res$tmres";

} # end of for
return (@res);
} # End of the function
#------------------------------------------------------------------------------
#------------------ work -------------------
my @ikey = md5($pas);
my @md5 = md5($r);
my ($i,$j);
for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
@ikey[$i * 4 + $j] = @ikey[$i * 4 + $j] ^ @initKey[$i * 4 + $j];
} # end of for
} # end of for
my @rijndael = rijndael(\@md5, \@ikey);
my @array2HStr=array2HStr(@rijndael);

print"pass = $pas<br>r = $r<hr>";
print"Code = @array2HStr<br>";
#------------- end of work -----------------
#----- end uncript 2 pass ----------------------
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.