您的位置:首页 > 编程语言 > Qt开发

QT license gen tool开发总结

2015-06-02 11:37 417 查看
1.license gen tool简介这是一款用户软件授权管理license文件生成器,输入是用户的机器指纹,用户的授权信息(包括软件的使用期限,各个模块的授权)等,输出是一个license文件,用户客户运行授权软件时进行授权管理,还输出一个license数据库,方便后续管理。2.用到的技术2.1qt相关的知识包括ui 控件 发布 搭建环境等参考教程:丁林松的教程 http://pan.baidu.com/s/1hq5oxkK#path=%252F978-QT%25E5%2588%259D%25E7%25BA%25A7%25E5%2588%25B0%25E9%25AB%2598%25E7%25BA%25A7%25E7%25BC%2596%25E7%25A8%258B%25E8%25A7%2586%25E9%25A2%2591%25E6%2595%2599%25E7%25A8%258B--%25E4%25B8%2581%25E6%259E%2597%25E6%259D%25BE&render-type=grid-view 2.2 sqlite数据库技术2.3 openssl算法3.开发中遇到的问题3.1openssl RSA解密时,程序会挂掉原因是在拷贝解密数据时使用了strncat
memset((void *)pc_tmpbuf, '\0', sz_buflen);
strncat(pc_tmpbuf, pc_buffer, sz_buflen);
首先这样的操作很不规范,拷贝为什么要使用strncat呢,虽然理论上讲的通,将pc_tmpbuf初始化为了\0,此时strncat就是strcpy的作用。
但是用于解密数据可能会有\0,此时使用str的函数并不合理,应该是使用memcpy
3.2 函数调用时传递了空指针
size_t* retLen;
FUNC_RET decrypt_identifiers(char *pc_buffer,
const size_t sz_buflen,
const char *pc_rsa_pri_key_name,
const char *pc_decrypt_file_name,
size_t *psz_write_len)
decrypt_identifiers(pc_tmpbuf,sz_read_len,PRIKEY_DECRYPT_KEY_FILE_NAME, DECRYPT_FILE_NAME,retLen);
size_t *psz_write_len
这个参数是带有返回功能的,因为没有用到这个的返回值,所以没有考虑太多,直接传递了一个指针retLen。但是这个指针未被初始化,在
decrypt_identifiers中对其赋值时会产生意想不到的问题。出现有时候可以运行,有时候会死机。
指针使用前一定要初始化。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: