日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥

發布時間:2023/12/14 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

qt實現了一個給自己軟件加密的功能。

原理是:

需要被注冊的軟件第一次運行的時候,在系統的注冊表里面注冊一個鍵值,如下:

這個值作為生成密鑰的用戶識別號,然后生成密鑰文件key.db,把這個key.db文件放到軟件執行目錄下,即可完成軟件的注冊并正常使用軟件。

軟件第一次打開的界面及密鑰生成工具軟件界面如下:

將密鑰生成工具軟件生成的key.db放到軟件執行目錄下之后,軟件即可正常使用,如下圖:

?代碼使用了MD5加密 外加 AES加密,

解密和加密的核心代碼如下:

QString frmMain::getEncrypt(const QString &data, QString key)//data是需要被加密的原始數據,我這里放的是時間信息,key是注冊表中的值 {QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::ZERO);QByteArray hashKey = QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Md5);QByteArray encodedText = encryption.encode(data.toUtf8(), hashKey);QString str_encode_text=QString::fromLatin1(encodedText.toBase64());qDebug()<<"str_encode_text.size():"<<str_encode_text.size();return str_encode_text;}QString frmMain::getDecrypt(const QString &data, QString key)//data是需要被加密的原始數據,我這里放的是時間信息,key是注冊表中的值 {QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::ZERO);QByteArray hashKey2 = QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Md5);QByteArray decodedText = encryption.decode(QByteArray::fromBase64(data.toLatin1()), hashKey2);return decodedText; }

源碼鏈接:

https://download.csdn.net/download/weixin_43935474/85311488

總結

以上是生活随笔為你收集整理的qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。