나는 이것을 이해하려고 노력하고 있으므로 비슷한 것을 할 수 있습니다. 나는 알고있다 :C#에서 PHP 코드 변환으로 sha1 일치를 얻지 못했습니다. 무엇이 없습니까?
그것 (지난 20 바이트)에 추가 해시와 인증 키를 포함 버피MachineKeySection에서보고되고있는 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;
}
}
입니다 여기에 내가 무슨 일이 일어나고 생각입니다 : buf의 마지막 20 바이트를 제외한 모든 것을 해시합니다. 그러면 한 번에 1 바이트 씩 방금 생성 한 해시와 추가 된 해시를 지난 20 바이트의 buf와 비교합니다.
//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);
을 그리고 다음 단계는 비교하는 것입니다 :
그래서 PHP에서 나는 이것을 시도하고있다. 그러나 $ hash와 sha1 ($ ticket)의 출력을 에코 할 때 그들은 일치하지 않으므로 나는 코드에서 그들을 비교하는 것을 귀찮게하지 않았습니다.
더 나은 구문을 사용해 주셔서 감사하지만 여전히 필요한 것은 아닙니다. – lynn