在一个基于WebService和窗体的C#应用项目中,需要对传输数据做加密处理。在服务器端做加密解密处理时,还是希望找到一个轻量级的快速加密解密方法。下面给出了20个int字段的数据表(DataTable)的加密时间(毫秒),其中XOR是位取异或加密。步骤为:先对DataTable序列化获得字节数组,然后用XOR或DES加密字节数组,最后用Convert.ToBase64String() 获得结果字符串。DES和XOR的加密矢量均为8位。
记录数 序列化 XOR DES
---------------------------------------------------
1000 140 156 187
2000 265 296 390
5000 671 765 937
10000 1375 1500 2343
---------------------------------------------------
表中看出,XOR比DES速度快。事实上,XOR只多了个全字节数组扫描的时间和每个数的位取反时间。下表给出了记录数为5000和10000时,XOR加密矢量长度变化时的加密时间:
XOR加密矢量长 8 16 32 64 128-------------------------------------------------------------------------
5000条记录 734 718 703 718 718
10000条记录 1453 1453 1437 1437 1437
-------------------------------------------------------------------------