Bunu anlamaya çalışıyorum, böylece benzer bir şey yapabilirim. Biliyorum:C# kodlu PHP kod dönüşümünde bir sha1 eşleşmesi elde edemiyorum, neyi özlüyorum?
bunun (son 20 bayt) eklenen bir karma ile bir kimlik doğrulama anahtarı içeren tamponMachineKeySection aranır ediliyor HashData SHA1
length -= 20;
byte[] buffer2 = MachineKeySection.HashData(buf, null, 0, length);
for (int i = 0; i < 20; i++)
{
if (buffer2[i] != buf[length + i])
{
return null;
}
}
İşte ben oluyor düşünüyorum ne: Biz, ama son 20 baytlık buf'ın hepsini karıştırıyoruz. O zaman, bir zamanlar, byf'ın son 20 baytına eklenmiş olan hash ile yarattığımız karmayı karşılaştırarak, bir seferde 1 baytız.
//get the length of the ticket -20 bytes
$ticketLn = strlen($buf)-40;
//grab all but the last 20 bytes
$ticket = substr($decrypthex, 0, $ticketLn);
//create a hash of the ticket
$hash = substr($decrypthex, $ticketLn);
Ve sonraki adım karşılaştırmaktır:
Yani PHP'de bu çalışıyorum. Ancak, $ hash ve sha1 ($ ticket) çıkışını eklediğimde, eşleşmiyorlar, bu yüzden onları kodda karşılaştırmaktan rahatsız olmadım. Varsayılan olarak
Daha iyi sözdizimi için teşekkürler, ancak yine de ihtiyacım olanı değil. – lynn