关于蓝牙通信的数据AES128 ECB加密解密
Posted jersycoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于蓝牙通信的数据AES128 ECB加密解密相关的知识,希望对你有一定的参考价值。
因为AES128-ecb加密密钥采用了256位(32字节)的形式,而AES加密的位数是和密钥长度挂钩的,所以在刚拿到蓝牙协议的时候,一脸懵逼。为啥16字节的数据通过AES128-ecb加密后还是16个字节,此时我一直认为应该是32个字节(因为我测试也是返回的32个字节,没毛病啊?)
但是,这是有问题的!
首先来看下我们的蓝牙数据加密数据的格式:
key:
需加密数据:
加密后结果:
发送16个字节,加密后也是16个字节。没办法啊,只能去看AES128 ECB加密的代码了。后面发现确实之前的加密后结果长度 = 内容长度 + kCCBlockSizeAES128的长度,几番折腾,终于可以了,现在把修改好的代码发出来。
导入头文件 #import <CommonCrypto/CommonCryptor.h>
加密:
解密:
测试使用:
友情提示: NSData中的是16进制的数据,0x69 = 105
不足之处,欢迎指正!也希望能对你有所帮助~
demo git地址: https://github.com/JeanOrey/AES128-ECB
以上是关于关于蓝牙通信的数据AES128 ECB加密解密的主要内容,如果未能解决你的问题,请参考以下文章