我正在运行代码
var signatureBase = "CAAVRwZBSsH38BAJF7Ct1wUF3GRctdE9a0mHpmMZCa9UtlQMZBRaVC9dupKBuqlPp2BL7x12muSo0p9YZCnwajGBR7UJsNhIr9JWtnWJCaqf3k8azY50Ka87umbvd6mQKo19en0t5wCKRyPITCJtm4WP74MYa8XVNPyL1YABTwZB6xWsh37ZA0ISvDvoMVRfGLzkkWulZA8qqZC71b4kRWkBB";
byte[] signatureBytes = new SHA1Managed ().ComputeHash (System.Text.Encoding.UTF8.GetBytes (signatureBase));
SoapHexBinary shb = new SoapHexBinary( signatureBytes );
Debug.LogError (shb.ToString());
并获得不同的结果:
device: 409E73E8A9971EB82435FE38556D37D2C888E22C
editor: 0CE1044C1D0CB90036811DD0C3B659A09FE5C2C3
有趣的部分是几天前就出现了差异。 在那之前,编辑器的哈希值与设备上的哈希值相同:服务器在当前情况下期望 0CE1044C1D0CB90036811DD0C3B659A09FE5C2C3。 我可以通过编辑器连接,但设备无法连接。
测试设备:2个 iPhone6。 两者都可重现。
更新:这似乎是一个 IL2CPP 问题。
如果不使用它进行编译,则会获得 0CE1044C1D0CB90036811DD0C3B659A09FE5C2C3。但是,如果启用 IL2CPP 进行编译,并在 x64 兼容设备上运行它,则会获得 409E73E8A9971EB82435FE38556D37D2C888E22C。