【发布时间】:2016-02-18 11:12:31
【问题描述】:
我在将这个 PHP 代码翻译成 C# 时遇到了一些问题:
$hash = hash('sha384', $string_to_hash, true);
$base64Hash = strtr(base64_encode($hash), '+/', '-_');
你能帮帮我吗? 谢谢!
编辑:我正在使用整个 PHP 代码更新这篇文章以转换为 C#,因为我无法使用两种语言获得相同的散列令牌
$host = "100.200.100.200";
$url= "http://".$host.":1935/";
$stream = "vod/_definst_/test.smil";
$start = time();
$end = strtotime("+30 minutes");
$secret = "abcde";
$tokenName = "wowzatoken";
$hash = hash('sha384', $stream."?".$secret."&{$tokenName}endtime=".$end."&{$tokenName}starttime=".$start, true);
$base64Hash = strtr(base64_encode($hash), '+/', '-_');
$params = array("{$tokenName}starttime=".$start, "{$tokenName}endtime=".$end, "{$tokenName}hash=".$base64Hash);
$playbackURL = $url.$stream."/playlist.m3u8?";
foreach($params as $entry){
$playbackURL.= $entry."&";
}
$playbackURL = preg_replace("/(\&)$/","", $playbackURL);
echo $playbackURL;
【问题讨论】: