STM32单片机的TEA加密通信设计环境:主机:WIN7开发环境:MDK4.72单片机:STM32说明:在项目中单片机会与服务器进行网络通讯。需要对通讯加密,我选择了TEA加密算法。*说明:TEA加密解密算法*TEA(TinyEncrypTIonAlgorithm)是一种简单高效的加密算法,以加密解密速度快,*实现简单著称。*算法很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,*算法采用迭代的形式,*推荐的迭代轮数是64轮,最少32轮。**********************************************************************/#ifndef_TEA_H_#define_TEA_H_/**********************************************************************头文件**********************************************************************/#include“header.h”/**********************************************************************函数**********************************************************************//**********************************************************************tea加密*参数:v:要加密的数据,长度为8字节*k:加密用的key,长度为16字节**********************************************************************/staTIcvoidtea_encrypt(uint32_t*v,uint32_t*k);/**********************************************************************tea解密*参数:v:要解密的数据,长度为8字节*k:解密用的key,长度为16字节**********************************************************************/staTIcvoidtea_decrypt(uint32_t*v,uint32_t*k);/**********************************************************************加密算法*参数:src:源数据,所占空间必须为8字节的倍数。加密完成后密文也存放在这*size_src:源数据大小,单位字节*key:密钥,16字节*返回:密文的字节数**********************************************************************/uint16_tencrypt(uint8_t*src,uint16_tsize_src,uint8_t*key);/**********************************************************************解密算法*参数:src:源数据,所占空间必须为8字节的倍数。解密完成后明文也存放在这*size_src:源数据大小,单位字节*key:密钥,16字节*返回:明文的字节数,如果失败,返回0**********************************************************************/uint16_tdecrypt(uint8_t*src,uint16_tsize_src,uint8_t*key);#endiftea.c/**********************************************************************TEA算法主文件*(c)copyright2013,jdh*AllRightReserved*文件名:hash.c*程序员:jdh**********************************************************************//**********************************************************************头文件**********************************************************************/#include“tea.h”/**********************************************************************函数**********************************************************************//**********************************************************************tea加密*参数:v:要加密的数据,长度为8字节*k:加密用的key,长度为16字节**********************************************************************/staTIcvoidtea_encrypt(uint32_t*v,uint32_t*k){uint32_ty=v[0],z=v[1],sum=0,i;uint32_tdelta=0x9e3779b9;uint32_ta=k[0],b=k[1],c=k[2],d=k[3];for(i**********************************************************************/staticvoidtea_decrypt(uint32_t*v,uint32_t*k){uint32_ty=v[0],z=v[1],sum=0xC6EF3720,i;uint32_tdelta=0x9e3779b9;uint32_ta=k[0],b=k[1],c=k[2],d=k[3];for(i=0;i《32;[标签:内容]