数据的传输中,为防止数据传输过程中被获取解析 造成数据的不安全,一般都会采取各类的方式对数据进行加密、压缩等操作,在客户端或服务端以相同的算法解析即可获得数据,一定程度上减小了数据在中间过程被获取数据安全性的风险。
下面介绍几种知名的加密解密及数据处理的方法
1.BlowFish DataCrypto TEA XXTEA
代码下载
2.crc校验
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方式+简单、高效的加密算法)使用其中的几种,对于安全性要求比较高的,可以采用一些成熟的、大型的算法,因为数据在加密解密过程中会浪费很多的资源,所以频繁的数据操作中,如果对安全性要求的不是那么严格,个人觉得还是要尽量避免使用笨重的加密算法的。