美文网首页
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校验和的验证方法

    如下: 测试 关于校验的数据格式0xAA+0xA1+0xXXXX+CS(校验位),这个只是我这里需要的数据格式,你...

  • java类加载机制

    类的生命周期 1)加载:根据指定地址加载.class字节码文件到jvm方法区。2)验证:校验字节码内部格式是否符合...

  • Java类加载过程

    加载 把class字节码通过classLoader加载进内存 验证 校验字节流是否符合jvm规范 对于元数据的验证...

  • java 类加载 双亲委派 破坏双亲委派

    加载:在硬盘上查找并通过IO读入字节码文件至JVM虚拟机方法区,同事在堆中创建Class对象 验证:校验字节码文件...

  • Android升级OTA

    校验升级包调用RecoverySystem类提供的verifyPackage方法进行签名验证 installPac...

  • validation插件的使用

    两个概念:method:验证方法,指的是校验的逻辑rule :验证规则,指的是元素和验证方法的关联validate...

  • Swift开发--Sorted方法

    1.使用sort方法和闭包进行数组排序 sort方法返回一个数组的有序版本。(sort方法即为Swift2.0之前...

  • Spring MVC 作业讲解

    1 增加权限注解类 注解值是String数组 2 doPost方法添加权限校验代码 在dopost方法中增加验证注...

  • Swift语言必学秘技:数组里面的使用方法

    ​ Swift语言必学秘技:数组里面的使用方法 这一期我们来说一下Swift语言里面数组的应用方法。 在Swift...

  • Java - Spring Boot 分组参数校验

    @Valid:标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联和递归校验@Validat...

网友评论

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

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