我尝试了相当失败的尝试,将以下php代码转换为C# 并需要帮助。
php代码是
$string="012014Te$ting#501834502014060007400";
$salt = "Cli3ntH@sah";
$utfString=mb_convert_encoding($string.$salt,ÄSCII");
$hashTag=sha1($utfString,true);
$Hash = base64_encode($hashTag);
带有C#代码
byte[] ascii = Encoding.ASCII.GetBytes(objtohash);
byte[] utf8 = Encoding.Convert(Encoding.ASCII, Encoding.UTF8, ascii);
byte[] hashBytes2 = sha1.ComputeHash(utf8);
var Hash = Convert.ToBase64String(hashBytes2);
还尝试了此操作,其中objtohash = $ string。$ salt(即串联)
var sha1 = new System.Security.Cryptography.SHA1Managed();
//convert to ascii byte array
byte[] AScii = EncodeAscii(objtohash);
//Hash it
byte[] hashBytes = sha1.ComputeHash(AScii);
//convert it to base 64
var Hash = Convert.ToBase64String(hashBytes);
我已经按照SO尝试了其他几种方法,但是我无法获得与php示例相同的哈希值,希望有人可以做到这一点并希望给出原因的解释。
谢谢
答案 0 :(得分:0)
语法错误是手指麻烦。
答案是,..基本上,通过尝试使用谷歌搜索可以找到的任何和所有组合是:
var objtohashArry = Encoding.ASCII.GetBytes(objtohash);
var HashSharresult = SHA1.Create().ComputeHash(objtohashArry);
var requestHash = Convert.ToBase64String(HashSharresult);
RequestHash = requestHash;