/********************************************************************* * TEA算法头文件 * (c)copyright 2013,jdh * All Right Reserved *文件名:tea.h *程序员:jdh **********************************************************************/ /********************************************************************* *说明:TEA加密解密算法 *TEA(Tiny Encryption Algorithm)是一种简单高效的加密算法,以加密解密速度快, *实现简单著称。 *算法很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key, *算法采用迭代的形式, *推荐的迭代轮数是64轮,最少32轮。 **********************************************************************/ #ifndef _TEA_H_ #define _TEA_H_ /********************************************************************* * 头文件 **********************************************************************/ #include "stdint.h" #define TEA_KEY "0123456789abcdef" #define TEA_KEY_LEN 16 /********************************************************************* * 函数 **********************************************************************/ /********************************************************************* * tea加密 *参数:v:要加密的数据,长度为8字节 * k:加密用的key,长度为16字节 **********************************************************************/ void tea_encrypt(uint32_t *v,uint32_t *k); /********************************************************************* * tea解密 *参数:v:要解密的数据,长度为8字节 * k:解密用的key,长度为16字节 **********************************************************************/ void tea_encrypt(uint32_t *v,uint32_t *k) ; /********************************************************************* * 加密算法 *参数:src:源数据,所占空间必须为8字节的倍数.加密完成后密文也存放在这 * size_src:源数据大小,单位字节 * key:密钥,16字节 *返回:密文的字节数 **********************************************************************/ uint16_t encrypt(uint8_t *src,uint16_t size_src,uint8_t *key); uint16_t Tea_Encrypt(uint8_t *src,uint16_t size_src); /********************************************************************* * 解密算法 *参数:src:源数据,所占空间必须为8字节的倍数.解密完成后明文也存放在这 * size_src:源数据大小,单位字节 * key:密钥,16字节 *返回:明文的字节数,如果失败,返回0 **********************************************************************/ uint16_t decrypt(uint8_t *src,uint16_t size_src,uint8_t *key); uint16_t Tea_Decrypt(uint8_t *src,uint16_t size_src); #endif