| | |
| | | using System; |
| | | |
| | | |
| | | |
| | | public class LoginManager : ManagerBase<LoginManager> |
| | | { |
| | | public const uint DwVersionNo = 153518004; |
| | |
| | | { |
| | | try |
| | | { |
| | | string logicVersionMd5 = ""; |
| | | string assetVersionMd5 = ""; |
| | | string logicVersionMd5 = "00"; |
| | | string assetVersionMd5 = "00"; |
| | | // 初始化结果字节数组(MD5 是 16 字节) |
| | | byte[] resultBytes = new byte[16]; |
| | | foreach (var item in LocalResManager.Instance.assetVersions) |
| | | { |
| | | // 对每个 MD5 进行异或运算 |
| | | byte[] md5Bytes = HexStringToByteArray(item.Value.md5); |
| | | for (int j = 0; j < 16; j++) |
| | | { |
| | | resultBytes[j] ^= md5Bytes[j]; |
| | | } |
| | | |
| | | var fieldInfo = typeof(LocalResManager).GetField("assetVersionsForHotCheck", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); |
| | | if (fieldInfo != null) |
| | | { |
| | | var assetVersionsObj = fieldInfo.GetValue(null); |
| | | if (assetVersionsObj != null && assetVersionsObj is IDictionary) |
| | | { |
| | | var assetVersionsForHotCheck = (IDictionary)assetVersionsObj; |
| | | foreach (DictionaryEntry item in assetVersionsForHotCheck) |
| | | { |
| | | var assetVersion = item.Value as LaunchCommon.AssetVersion; |
| | | if (assetVersion != null) |
| | | { |
| | | // 对每个 MD5 进行异或运算 |
| | | byte[] md5Bytes = HexStringToByteArray(assetVersion.md5); |
| | | for (int j = 0; j < 16; j++) |
| | | { |
| | | resultBytes[j] ^= md5Bytes[j]; |
| | | } |
| | | } |
| | | } |
| | | //取最后两位 |
| | | logicVersionMd5 = BitConverter.ToString(resultBytes).Replace("-", "").ToLower().Substring(14, 2); |
| | | } |
| | | } |
| | | //取最后两位 |
| | | logicVersionMd5 = BitConverter.ToString(resultBytes).Replace("-", "").ToLower().Substring(14, 2); |
| | | |
| | | |
| | | resultBytes = new byte[16]; |
| | | foreach (var item in AssetVersionUtility.assetVersions) |
| | |
| | | } |
| | | catch |
| | | { |
| | | Debug.LogError("RefreshHotVersion 错误"); |
| | | Debug.LogError("RefreshHotVersion 错误"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 辅助方法:十六进制字符串转字节数组 |
| | | private byte[] HexStringToByteArray(string hex) |