Hello World

**我的项目(服务端):6 TCP-PasswordVerify Server.zip
**我的项目(游戏端):Assets(4).zip


总结心得

(服务端总结)

***不要用哈希值做验证,因为不一样的Net.版本生成的哈希值会不同!***
(MD5算法应用)
        string ConvertToMD5(string i)
        {
            MD5 md5 = MD5.Create();
            //需要将字符串转成字节数组
            byte[] buffer = Encoding.Default.GetBytes(i);
            //加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
            byte[] md5buffer = md5.ComputeHash(buffer);
            string str = null;
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            foreach (byte b in md5buffer)
            {
                //得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
                //但是在和对方测试过程中,发现我这边的MD5加密编码,经常出现少一位或几位的问题;
                //后来分析发现是 字符串格式符的问题, X 表示大写, x 表示小写, 
                //X2和x2表示不省略首位为0的十六进制数字;
                str += b.ToString("x2");
            }
            return str;
        }

(游戏端总结)

 按CTRL + K, CTRL + D 代码快速格式化
                if (data[1] == 3 && data[0] == 0)
                {
                    t.Shutdown(SocketShutdown.Both);
                    t.Close();
                    print("由于你" + data[1] + " 次失败登陆,你已被服务器断开连接");
                    fb = "由于你" + data[1] + " 次失败登陆,你已被服务器断开连接";
                }

好好学习,天天向上

标签: Windows, C#, Server, Socket

添加新评论