qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥
生活随笔
收集整理的這篇文章主要介紹了
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加密,并实现一台电脑系统一个密钥的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sso分析
- 下一篇: 小型直播系统系列-乐聊TV的开发(二)