iOS之BLE蓝牙SDK开发个人总结(进阶篇)

本文总结了iOS Bluetooth Low Energy (BLE) SDK开发中的关键点,包括通信协议的拟定、加密传输(如AES和MD5混合加密)、数据编码为NSData以及处理回调的策略。在协议拟定中,介绍了如何通过DH协商密钥确保安全,以及使用大数计算库JKBigInteger。数据传输部分讲解了将不同格式数据转换为NSData的编码方法,包括对整型、浮点型的处理。此外,文章还讨论了SDK设计中防止回调错乱和重复执行的机制。
摘要由CSDN通过智能技术生成

有关iOS BLE蓝牙基础功能的封装已经在上篇文章写完了,本篇文章负责把在SDK封装过程中遇到的问题知识点进行总结。

封装SDK实质上是把一些功能给封装成一个个对应的方法,用SDK的人只需要调用相应的方法就能实现对应的功能,而不再需要一个复杂的实现过程。

蓝牙功能的实现实质上是通过手机和蓝牙互相通信而建立的,所以通信的协议是由我们自己进行拟定的。解释一下协议的拟定,就是手机端和设备端提前商量好用某些字符代表某种意义,可以理解为手机端和设备端两者之间建立了一种特殊的语言。(比如:12345代表让设备自爆,那么设备收到12345的时候就自爆了?举个例子)。

好了,现在进入正题

既然有通信协议,那么为了安全考虑就一定需要加密传输,否则随便来个人给设备发个12345。。。。不就完了。

下面就是第一个问题

  1. 有秘密,就肯定需要密钥进行加解密,但是密钥又不能直接发送,否则被截取了密钥和没有密钥有啥区别。

于是我们采用DH协商密钥的方法进行计算密钥。想了解什么是DH协商密钥的可以看看这个DH协商密钥原理DH密钥计算方法

计算DHKey需要进行超大数的计算,在百度上搜索了半天终于找到了一个比较好的大数计算的第三方库?,放到了私人百度云上JKBigInteger,密码:ub2s。需要的可进行下载。协商密钥方面的事从找到这个库的时候起就没什么大问题了。

  1. 有了密钥,接下来就是加密方法了。目前为止比较主流的加密方式就是aes,md5,base64等了,这个SDK就是使用aes和md5混合加密的形式进行数据的传输。

接下来就是aes加密相关的分享了,-->Aes加密算法主要还是使用iOS系统自带的加密算法,在系统提供的算法上进行了一层包装,用起来更方便。

同样的md5的代码不是太多就直接贴出来了

//md5加密字符串
+ (NSString *)md5WithString:(NSString *)inputStr
{
    //传入参数,转化成char
    const
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值