当前位置: 首页 > news >正文

java BCC异或校验例子

需求

对一个十六进制的字符串进行BCC校验

方法

    private static String XORCheck(String rawMsg) {
        // 16进制字符串需要转成10进制数组进行校验,然后再返回16进制字符串用于与原来的字符匹配
        byte[] bytes = HexDumpMsgFormat.hexStr2DesBytes(rawMsg);
        return BytesUtil.bytesXORCheck(bytes);
    }

    /**
     * 十六进制字符串转10进制字节数组
     */
    public static byte[] hexStr2DesBytes(String hex) {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        int k = 0;
        for (int i = 0; i < len; i++) {
            byte high = (byte) (Character.digit(hex.charAt(k), 16) & 0xff);
            byte low = (byte) (Character.digit(hex.charAt(k + 1), 16) & 0xff);
            result[i] = (byte) (high << 4 | low);
            k += 2;
        }
        return result;
    }

 如果是普通的字符串

bytesXORCheck("xxxxx".getBytes())

    /**
     * OXR校验
     * 在线BBC校验: http://www.ip33.com/bcc.html
     *
     * @param bytes
     * @return
     */
    public static String bytesXORCheck(byte[] bytes) {
        int nAll = 0;
        for (int nTemp : bytes) {
            nAll = nAll ^ nTemp;
        }
        return String.format("%02X", nAll & 0xff);
    }

验证

BCC校验(异或校验)在线计算_ip33.com

BCC一般是对前端内容校验,然后拼到最后,给设备下发指令。 

http://www.dtcms.com/a/60402.html

相关文章:

  • 使用Mockito实现单元测试
  • Bootstrap:图标库的安装及其使用
  • spring boot和spring cloud的区别
  • 【0016】Python数据类型-不可变集合详解
  • Retouch Pro 3.2.0汉化版深度解析:AI智能人像修图新利器
  • 开源许可证通俗、简洁介绍
  • K8s 1.27.1 实战系列(八)Service
  • 5G基本概念
  • fiddler+雷电模拟器(安卓9)+https配置
  • 计算机网络--访问一个网页的全过程
  • 从Manus看网络安全:通用AI智能体重构安全运营
  • gdb调试以及常用相关工具(hexdump\objdump等)
  • Node.js与VUE安装
  • 化工厂防爆气象站:为石油化工、天然气等领域提供安全保障
  • 在 Axios 中设置代理
  • BGP实验(一)IBGP全互联配置
  • Android TCP封装工具类
  • 【Linux docker】关于Docker 守护程序配置远程访问,安全认证以及idea连接。
  • 高效获取历史行情数据:xtquant的实战应用
  • SpringCloud——CircuitBreaker断路器
  • 电脑维修保养售后服务跟踪软件到哪里下载,佳易王电脑保养维护记录查询可导入图片管理系统操作教程
  • 无法打开包括文件: “QGLWidget”: No such file or directory
  • 位运算操作符(移位操作符)
  • 【3DMAX插件】3DMAX建筑大师插件MasterBuilder使用方法
  • Java/Kotlin逆向基础与Smali语法精解
  • 十分钟临时邮箱服务源码带api
  • pytest数据库测试文章推荐
  • DICOM医学影像脱敏技术应用的重要性及其实现方法详解
  • 命名管道的创建和通信实现
  • cesium地图设置3d,2d,2.5d动态切换