Unity网络交互丨加密验证

目标:

数据在网络上,可能会被拦截改动,因此我们需要加密、对比有没有被改动,确定我们发来的数据是原数据。

一、MD5验证

1、原理:

客户端A要发送数据给客户端B,线下约定好一个密钥

网络上,客户端A把 数据 MD5(数据+密钥)算出来的验证码 发给客户端B。

客户端B接收到数据后,算出MD5验证码:接收到的数据+密钥,将该验证码与发来的验证码做对比。

若数据没被修改,算出的验证码会一致。

2、代码

    private void Start()
    {
        string data = "hello world";    //数据
        string key = "123";             //秘钥
        Md5Sum(data + key);             // 返回MD5验证码
    }

    public static string Md5Sum(string strToEncrypt)
    {
        // 将需要加密的字符串转为byte数组
        byte[] bs = Encoding.UTF8.GetBytes(strToEncrypt);

        // 创建md5 对象
        System.Security.Cryptography.MD5 md5;
        md5 = System.Security.Cryptography.MD5.Create();

        // 生成16位的二进制校验码
        byte[] hashBytes = md5.ComputeHash(bs);

        // 转为32位字符串
        string hashString = "";
        for (int i = 0; i < hashBytes.Length; i++)
        {
            hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
        }

        return hashString.PadLeft(32, '0');
    }
发布了320 篇原创文章 · 获赞 77 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/weixin_38239050/article/details/103307230