美文网首页
Swift下字节数组进行CS校验和的验证方法

Swift下字节数组进行CS校验和的验证方法

作者: ZYiDa | 来源:发表于2020-12-03 15:57 被阅读0次

    如下:

    /// CS校验和方法
    /// 校验原理
    /// 第一位到校验位之前的所有16进制数据相加,取最后两位
    /// 如果和校验位相等,则校验通过;如果不相等,校验失败
    /// 需要校验的数据格式:0xAA+0xA1+0xXXXX+CS(校验位)
    func CS_CHECK_DATA(_ bytes:[UInt8]) ->Bool{
        
        guard bytes.count == 7 && bytes[0] == 0xAA && bytes[1] == 0xA1 else {
            return false;
        }
        
        var total = 0
        for item in bytes[0...5] {
            total += Int(item)
            print(total)
        }
        
        let cs = bytes[6].hexString
        let totalHex = String(total,radix: 16)
        return totalHex.suffix(2) == cs
    }
    

    测试

    let bytes:[UInt8] = [170, 161, 66, 14, 102, 102, 103]
    print(CS_CHECK_DATA(bytes))
    true
    Program ended with exit code: 0
    

    关于校验的数据格式0xAA+0xA1+0xXXXX+CS(校验位),这个只是我这里需要的数据格式,你们可以指定自己的数据格式,然后再去修改校验步骤,但是大体思路都是一样的。

    相关文章

      网友评论

          本文标题:Swift下字节数组进行CS校验和的验证方法

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