124 lines
2.5 KiB
C
124 lines
2.5 KiB
C
#ifndef id_h
|
|
#define id_h
|
|
|
|
#include <type.h>
|
|
#include <id/md5.h>
|
|
|
|
|
|
/*
|
|
*SID的初始值管理及操作的结构
|
|
*/
|
|
struct sid_raw{
|
|
unsigned int type;
|
|
unsigned int *value;//4
|
|
unsigned int *value_deeper;//8
|
|
unsigned int *value_deepest;//32
|
|
};
|
|
|
|
/*
|
|
*SID的管理及操作的结构
|
|
*/
|
|
typedef struct s_id{
|
|
struct sid_raw *sr;//指向SID初始值
|
|
unsigned int deep;//SID初始值的复杂度
|
|
MD5_CTX *md5;//指向MD5结构
|
|
unsigned char *decrypt_hex;//指向MD5的Hex信息
|
|
char *decrypt_str;//指向MD5的Hex信息转化成的字符串
|
|
|
|
}SID;
|
|
|
|
|
|
|
|
|
|
/************************************************
|
|
初始化: 初始化有关函数
|
|
************************************************/
|
|
|
|
/*
|
|
*获得一个新的SID
|
|
*参数: deep_level指示原始ID的复杂度,type指示SID所绑定的数据结构的数据类型
|
|
*返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL.
|
|
*/
|
|
extern SID *getS_id(unsigned int type, unsigned int deep_level);
|
|
|
|
/*
|
|
*通过SID原始数据转换而成的字符串形式的MD5获得一个新的SID
|
|
*返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL.
|
|
*/
|
|
extern SID *setS_idWithString(char *);
|
|
|
|
/*
|
|
*获得一个新的ID
|
|
*/
|
|
extern unsigned long long getId(void);
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************
|
|
比较: ID的比较函数
|
|
************************************************/
|
|
|
|
/*
|
|
*比较两个SID
|
|
*返回: 返回strcmp风格的返回值
|
|
*/
|
|
extern int fitS_id(SID * const fs_id, SID * const ss_id);\
|
|
|
|
/*
|
|
*比较两个SID
|
|
*返回: 相同返回1,不相同返回0
|
|
*/
|
|
extern int simFitS_id(SID * fs_id, SID * ss_id);
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************
|
|
比较: ID的转换函数
|
|
************************************************/
|
|
|
|
/*
|
|
*将SID中的Hex形式的MD5数据转化成字符串形式的MD5
|
|
*/
|
|
extern void setSidToASCIIString(SID * const s_id);
|
|
|
|
char *s_idToASCIIString(SID * const s_id);
|
|
|
|
|
|
|
|
/************************************************
|
|
复制: 复制ID的函数
|
|
************************************************/
|
|
|
|
/*
|
|
*复制一个既有的SID,得到一个相同的崭新的SID
|
|
*/
|
|
extern SID *copyS_id(SID *f_sid);
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************
|
|
释放: 释放ID的函数
|
|
************************************************/
|
|
|
|
/*
|
|
*释放SID原始数据所占的内存空间
|
|
*/
|
|
extern int freeSidRaw(SID *s_id);
|
|
|
|
/*
|
|
*释放SID所有已占用的内存空间
|
|
*/
|
|
extern int freeS_id(SID *s_id);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* id_h */
|