Adler-32校验算法 C#实现
2018-03-15 00:00
393 查看
摘要: Adler-32是Mark Adler发明的校验和算法,和32位CRC校验算法一样,都是保护数据防止意外更改的算法,但是这个算法较容易被伪造,所以是不安全的保护措施。但是比CRC好点的是,它计算的很快。这个算法那是从Fletcher校验和算法中修改过来的,原始的算法形式略快,但是可依赖性并不高。
Adler-32校验算法
Adler-32是Mark Adler发明的校验和算法,和32位CRC校验算法一样,都是保护数据防止意外更改的算法,但是这个算法较容易被伪造,所以是不安全的保护措施。但是比CRC好点的是,它计算的很快。这个算法那是从Fletcher校验和算法中修改过来的,原始的算法形式略快,但是可依赖性并不高。namespace sdk.utils { public class Adler32 { public static uint checksum = 1; /// <summary>Performs the hash algorithm on given data array.</summary> /// <param name="bytesArray">Input data.</param> /// <param name="byteStart">The position to begin reading from.</param> /// <param name="bytesToRead">How many bytes in the bytesArray to read.</param> public static uint ComputeHash(byte[] bytesArray, int byteStart, int bytesToRead) { int n; uint s1 = checksum & 0xFFFF; uint s2 = checksum >> 16; while (bytesToRead > 0) { n = (3800 > bytesToRead) ? bytesToRead : 3800; bytesToRead -= n; while (--n >= 0) { s1 = s1 + (uint)(bytesArray[byteStart++] & 0xFF); s2 = s2 + s1; } s1 %= 65521; s2 %= 65521; } checksum = (s2 << 16) | s1; return checksum; } } }
相关文章推荐
- CRC-32 CRC-16 校验算法 C# 代码
- CRC16-CCITT校验算法实现(C#版)
- 【源代码】GIS 点、线缓冲区生成算法的C#实现(V0.95)
- 根据权重随机选取指定条数记录的简单算法实现(C#)【含源代码】
- 【彩票】彩票预测算法(一):离散型马尔可夫链模型C#实现
- C# int to BCD encode(最简单的实现办法)BCD编码编程实现算法
- c#实现猜数字算法,对所有CASE能在10步内求得其解
- 凸包的c#实现算法 推荐
- 数据结构(C#)--图结构的实现输出以及图结构的深度和广度优先搜索和Dijkstra 算法的最小路径以及最小生成树的实现
- C#实现的18位身份证格式验证算法
- NP难Packing 问题的拟人拟物算法C#实现
- 路径规划(最短路径)算法C#实现
- 图像相似度算法的C#实现及测评
- C#实现的18位身份证格式验证算法
- C#实现网页正文提取算法ok
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能
- C#实现的海盗分金算法实例
- 八皇后算法的另一种实现(c#版本)
- 【年终分享】彩票数据预测算法(一):离散型马尔可夫链模型实现【附C#代码】