C # PHP şifreleme kodunu dönüştürmek

1 Cevap

Ben C # için PHP kod parçası dönüştürmek çalışıyorum. Bir Esir Portal parçası. Birisi ne yapar açıklayabilir misiniz?

  $hexchal = pack ("H32", $challenge);
  if ($uamsecret) {
    $newchal = pack ("H*", md5($hexchal . $uamsecret));
  } else {
    $newchal = $hexchal;
  }
  $response = md5("\0" . $password . $newchal);
  $newpwd = pack("a32", $password);
  $pappassword = implode ("", unpack("H32", ($newpwd ^ $newchal)));

1 Cevap

Eduardo,

Eğer pack kılavuzuna bir göz atın eğer, pack onun sayı gösterimine (onaltılık, sekizlik, ikili) bir dize dönüştürmek için kullanılır.

bu yüzden

$hexcal = pack('H32', $challenge);

Gerçek 0xcca için 'cca86bc64ec5889345c4c3d8dfc7ade9' gibi bir dize dönüştürmek istiyorsunuz ... de9

if $uamsecret exist do the same things with the MD5 of hexchal concacteate with the uamsecret. if ($uamsecret) { $newchal = pack ("H*", md5($hexchal . $uamsecret)); } else { $newchal = $hexchal; }

$response = md5("\0" . $password . $newchal);

MD% '\ 0' + $ şifre + $ newchal

$newpwd = pack("a32", $password);

pad password 32 byte için

  $pappassword = implode ("", unpack("H32", ($newpwd ^ $newchal)));

Bir xor newpwd ve newchal yapmak ve bir onaltılık dize dönüştürmek, ben implode() belki karakterin bir dizi dizeye dönüştürmek için var alamadım .