android checksum校验
来源:互联网 发布:开淘宝怎么进货 编辑:程序博客网 时间:2024/06/06 17:18
checksum就是校验码,和md5的概念可以说是一样的,只是算法不一样.
checksum的算法也都不一样,看定的协议是怎么样的
我这边的业务场景是需要android端给打印机发送一个升级指令,两个是由蓝牙通讯的,打印机就需要校验下升级文件
我们定的checksum协议:将实际文件按无符号字节类型累加,保留低4字节
注:因为java里面默认的类型都是有符号类型的,所以需要先把文件的字节转成无符号类型的累加 就OK了. 直接上代码,注释都很清楚
byte[] write =new byte[(int)upgradeFile.length()]; //升级文件先写到字节数组中FileInputStream inputStream= null;try { inputStream = new FileInputStream(upgradeFile); inputStream.read(write); inputStream.close();} catch (FileNotFoundException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}int fileByte=0; //做累加for (byte b:write) { fileByte+=b&0xff; //b&0xff 就是将字节转为无符号类型的 }byte[] loB4=intToBytes(fileByte); //checksum 取低四字节
/** * 将int数值转换为占四个字节的byte数组 * @param value * 要转换的int值 * @return byte数组 */public static byte[] intToBytes( int value ){ byte[] src = new byte[4]; src[3] = (byte) ((value>>24) & 0xFF); src[2] = (byte) ((value>>16) & 0xFF); src[1] = (byte) ((value>>8) & 0xFF); src[0] = (byte) (value & 0xFF); return src;}
代码很简单这样子checksum就算完了
刚开始做的时候浪费了一点时间 就是因为不知道java默认都是有符号类型的, 累加完了才转为无符号类型.
阅读全文
0 0
- android checksum校验
- CheckSum校验
- checksum校验
- checksum校验
- [Android]使用checksum校验文件是否被修改
- Checksum 校验和
- Checksum 校验和
- 校验和代码(CheckSum)
- 滚动校验(Rolling Checksum)算法
- 5.6开始的校验 checksum
- MD5 校验和(checksum)
- LSP校验和(Checksum)
- 网际校验和算法(Internet CheckSum)
- 网际校验和(Internet Checksum)算法实现
- internet网络 checksum校验和计算方法
- pt-table-checksum校验mysql数据一致性
- hadoop Checksum校验的一个小问题
- pt-table-checksum主从一致性校验工具
- [APP] YUM 源配置
- window系统启动redis和清除缓存
- ionic3学习历程(1)
- Linux下修改node的环境变量
- PHP中的数组与数据结构
- android checksum校验
- 3D CNN框架结构各层详细计算过程
- 并发编程修炼六:volatile关键字解析
- 3D CNN框架结构各层详细计算过程
- RabbitMQ学习
- 数据结构与算法之六(希尔排序,非稳定排序)
- 阿里云搭建Https域名访问
- Java用OpenOffice将word转换为PDF并预览
- 【分享】偶然