美文网首页
Android 依据字符串进行 CRC校验

Android 依据字符串进行 CRC校验

作者: xiaovtoulu | 来源:发表于2020-08-18 17:20 被阅读0次

    /**

    * 计算CRC16校验码

    *

    * @param bytes 需要计算的字节数组

    */publicstaticStringgetCRC(byte[]bytes){

    intCRC=0x0000ffff;intPOLYNOMIAL=0x0000a001;inti,j;for(i=0;i<bytes.length;i++){CRC^=((int)bytes[i]&0x000000ff);for(j=0;j<8;j++){if((CRC&0x00000001)!=0){CRC>>=1;CRC^=POLYNOMIAL;}else{CRC>>=1;}}}returnInteger.toHexString(CRC);

    }

    注意: 直接以字符串输入'010600010100', 得到数值为'A118',发现并不是我想要的值。发现是ASCII校验结果,而我想要的是十六进制校验结果。所以需要转换,通过

    byte[]bytes=newBigInteger("010600010100",16).toByteArray();

    方法进行转换,然后进行CRC计算,即得到结果'D9 9A'。

    相关文章

      网友评论

          本文标题:Android 依据字符串进行 CRC校验

          本文链接:https://www.haomeiwen.com/subject/qhukjktx.html