【发布时间】:2020-04-21 07:18:08
【问题描述】:
我将此方法从 C# 转换为 Laravel:
C#代码:
using (SHA1Managed sha1 = new SHA1Managed())
{
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(hash.Length * 2);
foreach (byte b in hash)
sb.Append(b.ToString("X2"));
return sb.ToString();
}
在 laravel 中:
$text = hash('sha1', $txt);
$byte_array = unpack('C*', $text);
foreach ($byte_array as $b)
$r .= chr($b);
但是laravel中的结果不正确!
sb(c#中)和$r(laravel中)的值不相等。
如何转换这种方法?
【问题讨论】:
-
您可能应该说明哪里出了问题。 “不正确”的含义非常广泛。
-
再补充一下 Pallet 写的内容,你怎么知道是 PHP 代码“不正确”?
-
阅读本文并重写您的问题stackoverflow.com/help/how-to-ask
-
欢迎来到 Stack Overflow!为了给您一个很好的答案,如果您还没有看过How to Ask,它可能会对我们有所帮助。如果您可以提供minimal reproducible example,它可能也很有用。