私はこれを理解しようとしているので、私は似たようなことをすることができます。私が知っている:MachineKeySectionで検索されていますが追加ハッシュ(最後の20バイト) HashDataと認証キーが含まれているbufに私のC#でPHPコード変換にsha1の一致が得られません。何が欠けていますか?
は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バイトずつ、作成したばかりのハッシュと追加されたハッシュをbufの最後の20バイトと比較します。
だから、PHPで私はこれしようとしている:
//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);
をし、次のステップでは、比較することです。しかし、私が$ hashとsha1($ ticket)の出力をエコーすると、一致しないので、コードで比較することさえ気にしませんでした。
私はより良い構文をありがとうがありません。 – lynn