查看完整版本: [-- Qt RSA密钥对生成器[支持2048位] 附带源码 --]

QTCN开发网 -> Qt 作品展 -> Qt RSA密钥对生成器[支持2048位] 附带源码 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

lb309925437 2017-08-18 16:50

Qt RSA密钥对生成器[支持2048位] 附带源码

RSA加密用处比较广泛, 在此就不赘述了。
不过最常用的做法是 512bit AES/DES 加密数据段,然后使用2048bit RSA 加密 AES/DES 密钥。 每隔一段时间更换 RSA密钥对。
你可以参照此程序实现动态RSA密钥更新,或者实现一个软件注册机。
简单介绍下, 本项目有2个RSA加密实现,
1 其中rsa_simple.h是一个按照网上简单的教程来写的, 只支持20bit的密钥, 作为学习原理和简单加密使用。

2 另外一个rsa.h是使用GMP大数运算库实现的RSA加密,理论上支持大于2048bit的运算, 在本程序中我自己限制到了2048bit,如果你有需要可以自己改。另外本项目是用Qt 5.7 MinGW版本编译的, 在工程文件中静态链接了libgmp库, 编译时需要注意。
3 项目中两个类里面都有一个RSA_DGB宏定义,这个默认是0, 改为1 可以看到程序运行调试打印输出。

4 项目中两个类里面都有一个test()函数, 里面包含了完整的使用方法。
5 如果你需要在自己项目中使用, 只需要把libgmp库, 还有rsa_simple类 rsa类移植到你的工程中即可, 其他的文件用不到。
[attachment=17676]

[attachment=17677]

[attachment=17678]


源代码下载:[attachment=17679]
安装程序下载[附件大小超出论坛限制, 请到我的百度云盘下载]: 安装程序下载  

有问题欢迎QQ交流。


lsyzsl 2017-08-18 17:22
界面做的干净整洁大方。

神经023 2017-08-18 20:52

liuchangyin 2017-08-21 09:42

liuchangyin 2017-08-21 09:45
界面做的也挺好看的

stlcours 2017-08-21 14:02
>>或者实现一个软件注册机。

就是说,把id machine做公钥,注册码做私钥,还是反过来?

lb309925437 2017-08-21 14:32
stlcours:>>或者实现一个软件注册机。
就是说,把id machine做公钥,注册码做私钥,还是反过来? (2017-08-21 14:02) 

采用RSA算法实现注册码的基本原理
本文档只描述用户名+序列号、在线注册、激活码三种方式,其它方式不予考虑。

下面分别描述三种方式实现的基本原理:

一、 用户名+序列号
1.        生成一对公钥E和私钥D(供软件注册模板和注册机使用);
2.        软件供应商编写一个注册机,通过注册机将输入的用户名与私钥D加密码生成密码C(即:注册码);软件供应商将用户名及注册码提供给用户。
3.        用户安装软件后,输入用户名和注册码,软件注册模板采用公钥E对注册码解码后生成F(即:用户名);
4.        软件注册模板比较解码后的用户名F与输入的用户名,如果相等则用户合法,完成授权,否则授权失败。

二、在线注册
1.        生成一对公钥E和私钥D(供注册系统和注册模板使用);
2.        软件供应商将用户的凭证信息通过私钥D加密后生成F,并存储在特定的地方,比如说:存储在注册数据库中;
3.        用户安装软件后,输入用户特征信息后,软件注册模板采用公钥E对用户特征信息加密,形式成注册凭证C,通过网络发送到供应商的注册系统中。
4.        注册系统采用私钥D加密用户注册凭证C,生成F。通过F判断用户身份的有效性;
5.        注册系统将注册验证的结果通过私钥D加密后,通过网络发送给软件系统;
6.        软件注册模板采用公钥E对验证结果进行解密,根据结果来决定是否完成授权;

三、激活码
1.        生成一对公钥E和私钥D(供软件注册模板和注册机使用);
2.        用户安装软件后,软件注册模板提取用户机器的特定信息(如:MAC地址、CPU序列号、硬盘序列号等等),并通过其它的编码算法(如BASE64)生成一个申请码C;
3.        用户将申请码C发给软件供应商。软件供应商通过注册机采用私钥D加密申请码C后生成激活码F。软件供应商将激活码F发给用户。
4.        用户输入激活码F,软件注册模板采用公钥E对激活码F解码后生成G(即:用户机器特征信息),然后软件注册模板提取用户机器的特定信息后进行编码。将编码的结果与G进行比较,如果相等则用户合法,完成授权,否则授权失败。


摘自CSDN:http://blog.csdn.net/charleslei/article/details/50551008

wfwjp 2018-03-22 06:54

hanheyfon 2018-03-22 15:51
      

workshop 2020-01-06 16:23
不错的内容

shasidaran 2020-01-07 11:35
界面很清爽美观,思路介绍的很明确

jinyi7016 2020-06-22 16:20
怎么在win10下可以运行,在win7下无法运行呢

xiaoke123 2020-06-23 09:37
好东西 谢谢分享

sblpp 2021-02-02 08:57
感谢楼主分享

xiaoyu2 2023-05-08 13:23
谢谢分享


查看完整版本: [-- Qt RSA密钥对生成器[支持2048位] 附带源码 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled