标签:ref 发送 jea 地址 lock nsdata port git 解密
因为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
标签:ref 发送 jea 地址 lock nsdata port git 解密
原文地址:https://www.cnblogs.com/jersycoder/p/11479267.html