c# 搭建服务端 byte[] 处理(3)

数据的传输中,为防止数据传输过程中被获取解析 造成数据的不安全,一般都会采取各类的方式对数据进行加密、压缩等操作,在客户端或服务端以相同的算法解析即可获得数据,一定程度上减小了数据在中间过程被获取数据安全性的风险。

下面介绍几种知名的加密解密及数据处理的方法

1.BlowFish DataCrypto TEA XXTEA

代码下载

2.crc校验

CRC-16校验C#代码 - armyfai - 博客园

3.数据压缩、解压缩

代码下载

//对指定buffer(byte[])进行压缩
byte[] newBuffer =  ZlibHelper.CompressBytes(buffer);
//对指定的buffer(byte[])进行解压缩
byte[] newBuffer = ZlibHelper.DeCompressBytes(buffer);

4.异或:在算法中的应用可以使算法更加复杂,不易被破解,增强其安全性。

//异或因子
 private static readonly byte[] xorScale = new byte[] {
     ,,,,,,,,,,,,
    };
    /// <summary>
    /// 亦或
    /// </summary>
    /// <param name="buffer"></param>
    /// <returns></returns>
    public static byte[] Xor(byte[] buffer)
    {

        int iScaleLen = xorScale.Length;
        ; i < buffer.Length; i++)
        {
            buffer[i] = (byte)(buffer[i] ^ xorScale[i % iScaleLen]);
        }
        return buffer;
    }

总结

在实际的程序服务端应用中,为增强数据的安全性,一般采取一种以上方法对数据进行处理后传输。在我的实际应用中,根据数据的安全性要求不同采用了不同的方式进行处理,如一些频繁访问,涉及到的传输数据较为频繁的,便使用(异或+压缩+crc方式+简单、高效的加密算法)使用其中的几种,对于安全性要求比较高的,可以采用一些成熟的、大型的算法,因为数据在加密解密过程中会浪费很多的资源,所以频繁的数据操作中,如果对安全性要求的不是那么严格,个人觉得还是要尽量避免使用笨重的加密算法的。

上一篇:「newbee-mall新蜂商城开源啦」 前后端分离的 Vue 版本即将开源


下一篇:js jquery 等的地址