次の C# コードを PHP に変換したいと考えています。
C# は次のとおりです。
byte[] operation = UTF8Encoding.UTF8.GetBytes("getfaqs");
byte[] secret = UTF8Encoding.UTF8.GetBytes("Password");
var hmac = newHMACSHA256(secret);
byte[] hash = hmac.ComputeHash(operation);
私はこれに変わりました:
$hash = hash_hmac( "sha256", utf8_encode("getfaqs"), utf8_encode("Password"));
で、〜がある:
var apiKey = "ABC-DEF1234";
var authInfo = apiKey + ":" + hash
//base64 encode the authorisation info
var authorisationHeader = Convert.ToBase64String(Encoding.UTF8.GetBytes(authInfo));
私は次のようにすべきだと思います:
$authInfo = base64_encode($apiKey . ":" . $hash);
または
$authInfo = base64_encode(utf8_encode($apiKey . ":" . $hash));
しかし、確実ではありません。この 2 番目のエンコーディングでは、UTF8Encoding.UTF8 ではなく、Encoding.UTF8 が使用されていることに注意してください。
PHPコードはどのように見えるべきですか?