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默认都是有符号类型的, 累加完了才转为无符号类型.

android checksum校验相关推荐

  1. 百度OCR文字识别-Android安全校验

    百度OCR文字识别-Android安全校验 本文转载自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769 效果图: 如下为 ...

  2. Hadoop数据完整性与CheckSum校验原理

    一.HDFS数据完整性 用户肯定都希望系统在存储和处理数据时,数据不会有任何丢失或损坏.但是,受网络不稳定.硬件损坏等因素,IO操作过程中难免会出现数据丢失或脏数据,难免会出现数据丢失或脏数据,数据传 ...

  3. android MD5校验码的生成与算法实现

    android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...

  4. checksum校验

    原理 P/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,采用的都是将数据流视为16位整数流进行重复叠加计算.为了计算检验和,首先把检验和字段置为0.然后,对有效数据范围内中每个16位 ...

  5. android签名校验代码,Android签名验证解析

    1.本文主要内容 知识回顾 签名验证解析 总结 本文介绍下Android在安装apk时,对签名的验证过程 2.知识回顾 在Android签名过程详解一文中,我已经详细说明签名的过程以及为什么要这么做, ...

  6. 面试:Android 签名校验机制 v1、v2、v3

    探究 Android 签名机制和原理 - 腾讯云开发者社区-腾讯云 一.APK签名可以带来以下好处 应用程序升级 如果想无缝升级一个应用,Android系统要求应用程序的新版本与老版本具有相同的签名与 ...

  7. SQL SERVER数据页checksum校验算法

    在SQL SERVER2005以上版本中,数据页默认开启checksum,标识为m_flagBits & 0x200 == True,其值m_tornBits位于页头0x3C,4字节. 其算法 ...

  8. android渠道校验,Android渠道版本自动化校验

    国内市场上有许许多多的应用市场,常见的有:百度.360.腾讯应用宝.豌豆荚等.其他手机厂家如小米.华为.魅族.三星等都有自己的应用市场,总共有上百家! 1. 问题 发版前,Android工程师打包了上 ...

  9. android sha1校验工具,【原创实用】文件校验工具V1.2.1:支持MD5 SHA1 SHA256

    前言:这个程序其实我很早以前(大概上上周?)就已经完成了 但是没有发布,因为我还想不断打磨打磨. 先别走,结尾还有彩蛋 现如今相较第一个版本,已经进行如下改动: 解决clear之后后台线程依然未停止的 ...

最新文章

  1. Keras【Deep Learning With Python】MNIST数据集识别优化
  2. 内排序及时间复杂度分析-插入排序选择排序交换排序归并排序分配和索引排序对比...
  3. 学习“用dlopen,dlsym加载动态链接库.so中函数”之摘录
  4. EasyStack一天连中五单,OpenStack新拐点显现
  5. 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
  6. 数据可视化----我在寻找一款类似vfp或是access这样自带可视化风格的数据库或是键盘数据库...
  7. 好用!一键生成数据库文档,这个开源的文档生成工具值得了解
  8. PAT 乙级 1011. A+B和C (15) Java版
  9. Locked Treasure
  10. 转载--如何使用# ## ... _ _VA_ARGS_ _
  11. 【BZOJ】【1010】【HNOI2008】玩具装箱Toy
  12. 【Unity 题型】Unity基础
  13. Pdf格式文件怎么修改
  14. java 抽样算法_java生成抽样随机数的多种算法
  15. office 2010 在安装过程中出错
  16. Echart甘特图实现效果 + 配带抽成方法 + 源码
  17. k8s学习笔记2-搭建harbor私有仓库
  18. MobileNet_v1:深度可分离卷积
  19. 如何连接学校计算机机房的网络,学校计算机机房网络管理和维护.doc
  20. 【R统计】主成分分析2——主成分回归

热门文章

  1. 物联网Lora模块从入门到精通(五)光照与温湿度传感器
  2. 层次选择器(父子、后代、兄弟、相邻)
  3. Mac使用VirtualBox安装Cent OS7
  4. 三大运营商争夺iPhone,活体免费
  5. 使用Python制作一个照片换底色的exe程序文件(详细教程)
  6. python中集合比大小方法_Python集合17个方法详解
  7. 2008年中山市小学生信息学邀请赛第一题——机器人行走
  8. hive 按照某列值合并多行
  9. 端午节主题PPT模板
  10. STK中的VVLH坐标系及方位角、高度角