CRC32之JAVA实现
来源:互联网 发布:dedecms中js如何使用 编辑:程序博客网 时间:2024/05/18 09:35
CRC32之JAVA实现
近段时间项目中需要跟家用机顶盒进行对接,这里就难免需要涉及一些TS/SECTION之类的知识,关于TS及SECTION的协议这里不做讨论,今天的重点在于SECTION中的CRC32校验。
网上也找了很多关于CRC32的示例,C的JAVA的等等,但放到自己的程序里之后,对于发出的TS流,机顶盒总是过不了CRC32这一关,索性跟机顶盒要来C语言开发的CRC32实现代码,移植到了JAVA,贴到此处,以备查阅。
/** * <pre> * CRC32计算 * </pre> * * @author ManerFan 2015年8月4日 */public class CRC32 { /** * CRC32 = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 * + X8 + X7 + X5 + X4 + X2 + X1 + X0 */ private static final int CN = 0x04C11DB7; private static int[] ptiTable = new int[256]; static { build(CN); } private static void build(int cn) { int nData = 0; int nAccum = 0; for (int i = 0; i < 256; i++) { nData = i << 24; nAccum = 0; for (int j = 0; j < 8; j++) { if (0 != ((nData ^ nAccum) & 0x80000000)) { nAccum = (nAccum << 1) ^ cn; } else { nAccum <<= 1; } nData <<= 1; } ptiTable[i] = nAccum; } } public static int calculate(byte[] datas) { int crc32 = 0xFFFFFFFF; if (null == datas || datas.length < 1) { return crc32; } for (byte data : datas) { crc32 = (crc32 << 8) ^ ptiTable[(crc32 >>> 24) ^ (data & 0xFF)]; } return crc32; }}
0 0
- CRC32之JAVA实现
- java 实现CRC32校验
- java 实现CRC32校验
- java 实现CRC32校验
- java 实现CRC32和MD5
- Java语言实现CRC32校验
- Java 实现CRC32校验和MD5
- Java查表法实现CRC32校验算法
- CRC32算法学习笔记以及如何用java实现
- CRC32碰撞的实现
- CRC32碰撞的实现
- CRC32碰撞的实现
- JavaScript实现CRC32函数
- C#实现crc32函数
- CRC32校验C实现
- crc32 算法与实现
- CRC32算法实现
- JavaScript实现CRC32函数
- [读书笔记]代码的坏味道---何时重构
- Java程序员应该知道的10个调试技巧
- 二维数组作为函数参数传递剖析(C语言)
- 结构型模式:享元模式(Flyweight Pattern)
- springMVC下无法加载静态资源文件(js、css、image)
- CRC32之JAVA实现
- 开了一个新的C语言班级
- 位运算的妙用
- for循环 i 闭包
- Knockout应用开发指南 第五章:创建自定义绑定
- cocos2d-x 3.4版本游戏打包AKP (重点记录如何解决打包过程中遇到的各种问题)
- Tomcat在Linux上的安装与配置
- 疯狂ios讲义之选择器(UIPickerView)
- 使用注册表方式:建立一个注册表DWORD为1键值: