视讯游戏提供最新游戏下载和手游攻略!

Qt编写密钥生成器+使用demo

发布时间:2024-09-02浏览:42

各位老铁们,大家好,今天由我来为大家分享Qt编写密钥生成器+使用demo,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

在很多商业软件中,需要提供一些可以用于试运行的版本,这就需要有配套的密钥机制来进行控制。纵观大部分试用版软件,基本都是采用以下机制进行控制。

1:远程网络激活,每次启动网络查看使用时间等,这种方法是最完美的。缺点是无法连接网络的设备将停止工作。

2:获取本地硬盘+CPU等硬件的数量,进行计算,生成激活码。一半以上的软件都会使用这种方法。缺点是您无法自由控制软件的其他参数,例如添加到软件中的设备数量。控制。

3:设置运行过期时间+数量限制+运行时间的密钥文件,发送给用户在配套软件中使用。缺点是,如果只设置运行过期时间,用户可以更改计算机时间以获得更长的使用时间,即计算机未连接互联网时。

本demo使用第三种方法来实现。密钥文件使用最简单的异或加密,您可以自行更改为其他加密方式。

2. 实现的功能

可以控制软件的使用时间。

可以控制软件运行时间。

可以控制设备的数量。

可以在该工具上启动和停止服务。

您可以检查它已重新启动了多少次。

复位重启次数可以被清除。

3、效果图

4.完整代码

#include 'frmmain.h' #include 'ui_frmmain.h' #include 'qmessagebox.h' #include 'qfile.h' #include 'qprocess.h' #include 'qdebug.h'frmMain:frmMain(QWidget *parent) : QWidget (父), ui(new Ui:frmMain){ ui-setupUi(this); this-initForm(); qDebug() this-getCpuName() this-getCpuId() this-getDiskNum();}frmMain:~frmMain(){ 删除ui;}void frmMain:initForm(){ QStringList min;分钟'1''5''10''20''30'; for (int i=1; i=24; i++) { min QString:number(i * 60); ui-cboxMin-addItems(min); ui-cboxMin-setCurrentIndex(1); ui-dateEdit-setDate(QDate:currentDate()); for (int i=5; i=150; i=i + 5) { ui- cboxCount-addItem(QString('%1').arg(i)); }}QString frmMain:getWMIC(const QString cmd){ //获取cpu名称: wmic cpu get Name //获取cpu核心数: wmic cpu get NumberOfCores //获取cpu线程数: wmic cpu get NumberOfLogicalProcessors //查询cpu序列号:wmic cpu getprocessorid //查询主板序列号:wmicbaseboardgetserialnumber //查询BIOS序列号:wmicbiosgetserialnumber //检查硬盘:wmicdiskdrivegetserialnumber QProcess p; p.start(cmd); p.waitForFinished(); QString 结果=QString:fromLocal8Bit(p.readAllStandardOutput()); QStringList list=cmd.split(' ');结果=result.remove(list.last(), Qt:CaseInsensitive);结果=result.replace('\r', '');结果=result.replace('\n', '');结果=result.simplified(); return result;}QString frmMain:getCpuName (){ return getWMIC('wmic cpu 获取名称');}QString frmMain:getCpuId(){ return getWMIC('wmic cpu 获取处理器id');}QString frmMain:getDiskNum(){ return getWMIC('wmic 磁盘驱动器所在位置index=0 get serialnumber' );}QString frmMain:getXorEncryptDecrypt(const QString data, char key){ //使用异或加密,也可以自己更改算法QByteArray buffer=data.toLatin1(); int 大小=buffer.size(); for (int i=0 ; i 大小; i++) { buffer[i]=buffer.at(i) ^ key; } return QLatin1String(buffer);}void frmMain:on_btnOk_clicked(){ bool useDate=ui-ckDate-isChecked(); bool useRun=ui- ckRun-isChecked(); bool useCount=ui-ckCount-isChecked(); if (!useDate !useRun !useCount) { if (QMessageBox:question(this, 'Question', '您确定要生成没有任何限制的密钥吗?' ) !=QMessageBox:Yes) { return; } QString strDate=ui-dateEdit-date().toString('yyyy-MM-dd'); QString strRun=ui-cboxMin-currentText(); QString strCount=ui-cboxCount- currentText(); QString key=QString('%1|%2|%3|%4|%5|%6').arg(useDate).arg(strDate).arg(useRun).arg(strRun)。 arg(useCount).arg(strCount); QFile 文件(QApplication:applicationDirPath() + '/key.db');文件.open(QFile:WriteOnly | QIODevice:Text); file.write(getXorEncryptDecrypt(key, 110).toLatin1());文件.close(); QMessageBox:information(this, '提示', '密钥生成成功,只需将key.db文件复制到相应目录即可!');}void frmMain:on_btnClose_clicked(){ this-close();}

用户评论

陌然淺笑

这是个很酷的想法!能自己编写密钥生成器真方便。

    有19位网友表示赞同!

寒山远黛

想要学习Qt编程,这个项目看起来是个很好的开始!

    有17位网友表示赞同!

熏染

有了这套工具,以后做游戏就更快更灵活了。

    有13位网友表示赞同!

醉枫染墨

Qt真是个好编程语言,用来开发游戏很适合!

    有12位网友表示赞同!

有一种中毒叫上瘾成咆哮i

demo能让我直接看到结果,不用自己写那么多代码,太棒了!

    有5位网友表示赞同!

灬一抹丶苍白

希望能看到更多关于密钥生成器的详细介绍和教程。

    有11位网友表示赞同!

你身上有刺,别扎我

这个项目能提升我的Qt技术水平,我必须试一试!

    有15位网友表示赞同!

抚笙

学习Qt和开发自己的游戏工具,这真是个梦想!

    有19位网友表示赞同!

心亡则人忘

Qt编写代码真的很优雅,这个项目一定很专业。

    有10位网友表示赞同!

短发

密钥生成器对于游戏安全起着重要作用,值得关注!

    有8位网友表示赞同!

微信名字

看起来这是一个非常有用的工具,可以用来保护游戏的资源。

    有5位网友表示赞同!

慑人的傲气

希望这个项目能得到进一步发展,可以支持更多类型的游戏。

    有6位网友表示赞同!

反正是我

学习Qt真的很有挑战性,但这份成就感却让人非常满足。

    有7位网友表示赞同!

从此我爱的人都像你

这个demo演示的效果真是太棒了,让人想要立即开始使用!

    有13位网友表示赞同!

爱情的过失

开发者分享开源项目真是太好了,可以让大家一起进步!

    有9位网友表示赞同!

幸好是你

游戏开发不仅需要创意,还需要强大的技术支持,这个项目很到位.

    有20位网友表示赞同!

我家的爱豆是怪比i

未来希望看到更多使用Qt打造的游戏工具和应用。

    有13位网友表示赞同!

采姑娘的小蘑菇

学习编程真的很重要,可以让我们创造出许多有趣的东西。

    有6位网友表示赞同!

作业是老师的私生子

这个项目的开源属性让我感到无比开心,它能帮助每个人更容易地参与到游戏开发中来!

    有12位网友表示赞同!

惦着脚尖摘太阳

我很期待看到更多使用Qt开发的游戏作品!

    有12位网友表示赞同!

热点资讯