Skip to content

Latest commit

 

History

History

compressAndencryptImsi

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
/* 函数名:   CompressAndEncryptImsiData
 * 功能描述: 将原始数据 rawData 先用 zlib 压缩再用 des-cbc 加密,
 *           然后把结果以十六进制字符串的形式保存到 cipherTextBuf 中
 * 参数描述:
 *           cipherTextBuf: 用于保存压缩加密后以十六进制字符串保存的结果数据
 *                          的数组,必须足够大以容纳最大的数据量,该数组中的内容是
 *                          用于填充到 MQTT 发送 IMSI 数据中的相应字段的,即原来
 *                          不压缩不加密的原始 IMSI 数据的字段
 *           cipherTextBufSize: cipherTextBuf 数组的大小
 *           rawData: 原始的数据,即原始的 IMSI 数据
 *           key: 用于 des 加密的 key,采用配置参数里面的 key,请自行获取后传给 key
 * 返回值: 成功则返回 cipherTextBuf 所包含的结果字符串的长度,大于 0;
 *         失败则返回负数
 */
int CompressAndEncryptImsiData(unsigned char *cipherTextBuf,
        size_t cipherTextBufSize, char *rawData, char *key);

/* 函数名: DecryptAndUncompressImsiData
 * 功能描述: 将 CompressAndEncryptImsiData() 函数中压缩加密后的十六进制字符串 cipherTextBuf
 *           解密在解压缩,还原原始的 IMSI 数据,该函数仅用于验证测试,项目中实际的解密和解压缩
 *           工作由中电慧安平台负责
 * 参数描述:
 *           plainTextBuf: 用于保存解密解压缩后的 IMSI 数据,必须足够大以容纳最大的原始 IMSI 数据,
 *                         可根据每条 IMSI 数据的大小乘以最大值 5000 来分配空间测试
 *           plainTextBufSize: plainTextBuf 数组的大小
 *           cipherHexString: 压缩并加密后的十六进制字符串,即 CompressAndEncryptImsiData() 函数中
 *                            的 cipherTextBuf
 *           key: 用于 des 解密的 key,与 CompressAndEncryptImsiData() 函数中的 key 参数一致
 * 返回值: 成功则返回 plainTextBuf 所包含的解密解压后字符串的长度,大于 0;
 *         失败则返回负数
 */
int DecryptAndUncompressImsiData(char *plainTextBuf, size_t plainTextBufSize,
        char *cipherHexString, char *key);

具体使用可参考 HandleImsiTest.c

HandleImsi.h, zconf.h 和 zlib.h 三个头文件都会用到,请保存到合适的位置