我正在尝试将 c# 代码转换为 swift,其中我尝试将字符串转换为 sha1 哈希值。我正在尝试快速实现类似的结果。但是我得到了不同的结果。如果我遗漏了什么,有人可以指出我正确的方向吗?任何帮助是极大的赞赏。
C# 代码
public static string toSha1Digest(this string str)
{
using (SHA1 sha1 = new SHA1CryptoServiceProvider())
{
var mStr = "test1234";
var uni = new byte[mStr.Length * 2];
var encoder = Encoding.Unicode.GetEncoder();
encoder.GetBytes(mStr.ToCharArray(), 0, mStr.Length, uni, 0, true);
var hByte = sha1.ComputeHash(uni);
var buildString = new StringBuilder();
hByte.ToString();
for (var i = 0; i < hByte.Length; i++)
{
buildString.Append(hByte[i].ToString("X2"));
}
var convertedString = buildString.ToString();
buildString = null;
Array.Resize<byte>(ref uni, 0);
Console.WriteLine(convertedString);
}
}
Run Code Online (Sandbox Code Playgroud)
印刷
5387F24564B241075F48BBDFDDDC12640015E92A …
Run Code Online (Sandbox Code Playgroud)