加密解密
加密解密
无聊的阿乐
每天进步一点点,量变才会质变
展开
-
加密机和客户端互相验证身份
1、业务端与加密机交互 业务代码: 业务端连接上加密机之后,会在本地生成一个密钥对文件,里边包含公钥和私钥 业务端先把公钥发给加密机,然后加密机用该公钥加密一个数据发回来,业务端用私钥解密该数据,把该数据作为会话密钥(对称密钥) 之后业务端和加密机的通信都采用这个对称密钥对数据加密解密。 会话密钥本质是对称密钥,只在一次连接中生效,再次连接会重新生成 2、管理端(采用ukey)认证加密机 ...原创 2022-02-21 13:59:46 · 1498 阅读 · 0 评论 -
复杂结构体定义的同时赋值 - 签名结构体,公钥结构体
签名数据结构体定义 typedef struct ECCSignature_st { unsigned char r[64]; unsigned char s[64]; }ECCSignature; 签名数据结构体赋值 ECCSignature sig = { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0原创 2021-08-28 14:33:38 · 425 阅读 · 0 评论 -
可变参数宏的一些使用方法,方便打印log、出错信息等(出错后可以定位到哪一个文件,哪一个函数,哪一行)
宏定义: #define ERROR_MSG(format, ...) \ fprintf(stderr, "Fi:%s Fuc:%s L:%d"format, __FILE__, __FUNCTION__,__LINE__, ##__VA_ARGS__) #define DEBUG_MSG(format, ...) \ fprintf(stdout, format, ##__VA_ARGS__) 具体使用: rv = SKF_ConnectDev((LPSTR)input, &am原创 2021-08-28 15:06:46 · 180 阅读 · 0 评论 -
打印加密解密的数据、公钥私钥的函数,记录一下,方便以后直接使用
打印加密解密数据的函数: //函数定义 void print_data(const char *string, unsigned char*data, int size) { int i; printf("---------------------------------------------\n"); printf("%s:\n", string); for(i=0; i<size; i++) { printf("%02x ", data[i]); if((i%16) == 1原创 2021-08-28 14:46:43 · 389 阅读 · 0 评论