C# 将字符串值传递给需要SHA1字符串的WSDL API
我是C#net新手,但我使用的是php。我希望达到与此相同的结果C# 将字符串值传递给需要SHA1字符串的WSDL API,c#,.net,razor,C#,.net,Razor,我是C#net新手,但我使用的是php。我希望达到与此相同的结果 $var = $username.$jpwMobileNo; $pass = sha1(utf8_encode($var )); 因此,我可以将$pass变量传递给接受$pass字符串的API。我如何实现这一点。 我试过这个 var pass = userName + no + time + key; var p = Encoding.UTF8.GetBytes(pass); var x = sha.ComputeHash(p)
$var = $username.$jpwMobileNo;
$pass = sha1(utf8_encode($var ));
因此,我可以将$pass变量传递给接受$pass字符串的API。我如何实现这一点。
我试过这个
var pass = userName + no + time + key;
var p = Encoding.UTF8.GetBytes(pass);
var x = sha.ComputeHash(p);
var str = System.Text.Encoding.Default.GetString(x);
var user = new AWsdl.AgencyClient();
var resultAPI = user.GA(userName, no, time, key,str);
但是var str以字节的形式返回。如何将其转换为字符串?您正在使用
编码.GetString
将字节转换为字符串,但这只能用于将某些内容转换回编码为字节的字符串
使用BitConverter.GetString
方法将字节转换为PHPsha1
函数返回的相同十六进制字符串:
string str = BitConverter.ToString(x).Replace("-", String.Empty);
我确信变量
str
是一个字符串。你怎么说它是一个字节
?我把var x=sha.ComputeHash
转换回一个字符串是正确的吗?但是API提供程序要求var str
是一个字符串。这就是我在php$str=sha1(utf8_encode($ck))中所做的代码>$resultAPI=$client->GA($str)代码>谢谢!这就是我错过的