关于蓝牙通信的数据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加密解密的主要内容,如果未能解决你的问题,请参考以下文章

IOS AES加密之ECB128模式

AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密解密源码

AES-128-ECB 16进制加密解密算法

java使用AES加密解密 AES-128-ECB加密

AES128-ECB对文件进行加密解密验证

iOS AES128加密解密的两种模式(CBC和ECB)