C# SHA1:PHP和C的不同结果#
我有一个在C#中生成哈希的代码: 结果是:C# SHA1:PHP和C的不同结果#,c#,php,sha1,C#,Php,Sha1,我有一个在C#中生成哈希的代码: 结果是: G7xY+gb35Lw4HlDnTZP89FU3Khk= Dg+x7F8lsC/r9O8PNskgJ/MwNgU= 我尝试在PHP中获得相同的结果: $str = mb_convert_encoding("Ю-41241624.05.1991","UTF-8"); $hash = sha1($str,true); $base64 = base64_encode($hash); echo $base64; 但结果是: G7xY+g
G7xY+gb35Lw4HlDnTZP89FU3Khk=
Dg+x7F8lsC/r9O8PNskgJ/MwNgU=
我尝试在PHP中获得相同的结果:
$str = mb_convert_encoding("Ю-41241624.05.1991","UTF-8");
$hash = sha1($str,true);
$base64 = base64_encode($hash);
echo $base64;
但结果是:
G7xY+gb35Lw4HlDnTZP89FU3Khk=
Dg+x7F8lsC/r9O8PNskgJ/MwNgU=
您好,您的问题在“YU”字符中。你的c代码看起来不错。当您仅使用此字符调试代码时,您将得到值为208 174的字节数组,这实际上是UTF8中的Ю字符。因此,c#代码应该可以很好地工作,来自c#的sha1应该很好
您能否仅从php获取字符的字节数?它也应该是208和174。
如果删除此字符,则哈希字符串应相等。您好,您的问题在于“YU”字符。你的c代码看起来不错。当您仅使用此字符调试代码时,您将得到值为208 174的字节数组,这实际上是UTF8中的Ю字符。因此,c#代码应该可以很好地工作,来自c#的sha1应该很好
您能否仅从php获取字符的字节数?它也应该是208和174。
如果删除此字符,则哈希字符串应相等。只需删除mb_convert_encoding(),如果字符串已为UTF-8,则会将事情搞砸。
当我在没有该函数的情况下运行代码时,我得到了正确的结果:只要去掉mb\u convert\u encoding(),如果字符串已经是UTF-8,它就会把事情搞砸。
当我在没有该函数的情况下运行代码时,我得到了正确的结果:我的问题是,我试图从Windows控制台运行PHP脚本,并从控制台传递“str”。这就是我弄错哈希的原因。当我在脚本中写入字符串时,它显示了正确的结果。我的问题是,我试图从Windows控制台运行PHP脚本,并从控制台传递“str”。这就是我弄错哈希的原因。当我在脚本中写入字符串时,它会显示正确的结果。