Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Профи, помогите преобразовать данную функцию (https://forum.antichat.xyz/showthread.php?t=86032)

zahirmen 24.09.2008 20:31

Профи, помогите преобразовать данную функцию
 
Профи, помогите преобразовать данную функцию из делфи в пхп.Буду весьма признателен.

nerezus 24.09.2008 21:07

А почему бы не использовать стандартный метод для генерации хэша?

zahirmen 24.09.2008 21:33

Вопрос заклюается не в выборе метода генерации хеша, а именно преобразование этого кода из Делфи в Пхп.

FrMn 24.09.2008 22:09

что именно не получаецо? помочь - одно, сделоть за вас - совсем другое.

п.с. ник соответствует содержанию?

zahirmen 24.09.2008 22:30

2FrMn, а не поучается то что я паскалем 4 года назад пользавался.
2. ты хочешь сказать что-то за мой ник или за меня?

zahirmen 24.09.2008 22:41

<?
Код:

$MAC[0]="0";
$MAC[1]="0";
$MAC[2]=":";
$MAC[3]="1";
$MAC[4]="B";
$MAC[5]=":";
$MAC[6]="F";
$MAC[7]="C";
$MAC[8]=":";
$MAC[9]="9";
$MAC[10]="0";
$MAC[11]=":";
$MAC[12]="7";
$MAC[13]="2";
$MAC[14]=":";
$MAC[15]="6";
$MAC[16]="B";

//function GenerateHash($MAC){

 $cipher1='';
 $last_char=$MAC[0];

  for ($i=1; $i<=16; $i++){
    $last_char=$MAC[$i-1];
    $current_char=ord($MAC[$i]);
    $ok=0;

if ($current_char==ord("1")){
 $cipher1.=chr(($current_char+102)%15+97);
$ok=1;
}
if ($current_char==ord("7")){
 $cipher1.=chr($current_char);
 $cipher1.="h";
$ok=1;
}
if (($current_char==ord("0"))or($current_char==ord("4"))){
 $temp1=$current_char%19;
 $cipher1.=chr((5*$temp1)%29-ord($last_char)%7+93); 
 $cipher1.="$last_char";
 $cipher1.="h";
 
$ok=1;
}
if (($current_char==ord("2"))or($current_char==ord("5"))){
 $temp1=$current_char;
  if (($current_char%3)!=1) $temp1=ord("9");
 $cipher1.=chr($current_char-$temp1+18);
 
$ok=1;
}

if ($ok==0){
 $cipher1.=chr($current_char);
}
  }
echo $cipher1;

//}
//GenerateHash($MAC);
?>

Не получается.

FrMn 24.09.2008 23:45

PHP код:

<?php
$MAC
[0]="0";
$MAC[1]="0";
$MAC[2]=":";
$MAC[3]="1";
$MAC[4]="B";
$MAC[5]=":";
$MAC[6]="F";
$MAC[7]="C";
$MAC[8]=":";
$MAC[9]="9";
$MAC[10]="0";
$MAC[11]=":";
$MAC[12]="7";
$MAC[13]="2";
$MAC[14]=":";
$MAC[15]="6";
$MAC[16]="B";

$cipher1 '';
for (
$i=1;$i<=16;$i++)
{
    
$last_char $MAC[$i-1];
    
$current_char ord($MAC[$i]);
    switch (
$current_char)
    {
    case 
0x2d:$cipher1 .= chr ($current_char $i 31 18);
        break;
    case 
0x31:$cipher1 .= chr(($current_char 102) % 15 97);
        break;
    case 
0x37:$cipher1 .= chr($current_char) + chr(0x68);
        break;
    case 
0x30:case 0x34:
        
$temp1 $current_char 19;
        
$cipher1 .= chr( ($temp1) % 29 ord($last_char) % 93) + $last_char chr(0x68);
        break;
    case 
0x32:case 0x35:
        
$temp1 $current_char;
        if (
$current_char != 1$temp1 ord('9');
        
$cipher1 .= $cipher1 chr($current_char $temp1 18);
        break;
    default:    
$cipher1 .= $cipher1 chr($current_char);
    }
}
echo 
$cipher1;
?>


zahirmen 24.09.2008 23:58

2FrMn, спасибо, но где-то ошибка $cipher1 получается другой нежели в делфи


Время: 22:37