码迷,mamicode.com
首页 > 其他好文 > 详细

关于蓝牙通信的数据AES128 ECB加密解密

时间:2019-09-07 10:24:00      阅读:201      评论:0      收藏:0      [点我收藏+]

标签: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

 

关于蓝牙通信的数据AES128 ECB加密解密

标签:ref   发送   jea   地址   lock   nsdata   port   git   解密   

原文地址:https://www.cnblogs.com/jersycoder/p/11479267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!