Qt对MAC地址加密写入注册表

1、Qt利用QSetting读写注册表。

Windows的注册表格式分为根键、子键、键、值四种元素。

根键为最起始的计算机(“/”)。

根键下有五大子键。

每个子键下有下属子键、键、值。

键、值以键值对的形式存在,一个键对应一个值。

每个子键可以有0个或多个键值对。

   1.QSettings *reg = newQSettings("HKEY_CURRENT_USER\\Software\\yinhaifan", 

   2.                     QSettings::NativeFormat); 

   3.   reg->setValue("registered",true); 

   4.    delete reg;  

上述1、2代码为创建一个子键。

3代码为创建一个键值对。

  1. QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan",  
  2.                 QSettings::NativeFormat);  
  3. if (reg->value("registered",false).toBool())  
  4. {  
  5.     QMessageBox::information(NULL,"information","registered");  
  6. }  
  7. delete reg;  

上述1、2代码为创建一个子键。(子键存在则指向已存在的子键)。

3代码为判断读取键值对是否成功。

W7下会涉及到修改注册表的管理者权限问题。一个解决办法如下。

所以就以“管理员权限”运行qt creator。在Creator中运行编译后的exe文件,成功的修改了注册表。
   realese时,先生成exe文件。再使用win SDK的mt.exe工具把修改后的manifest打包到exe文件中。这时exe文件会被加上一个盾牌的图标,win7启动它时,会自动弹出确认框,让用户授予管理员权限。

 

 

2、Qt读取本机网卡MAC地址

可使用QNetworkInterface读取本地网卡地址。注意在Qt项目文件pro中写上QT+=network

QString address =QNetworkInterface::allAddresses().first().toString();

QString localHostName =QHostInfo::localHostName();

qDebug() <<"主机名:"<<localHostName<<"MAC地址:"<<address;

QList<QHostAddress> list2 =QNetworkInterface::allAddresses();

foreach (QHostAddress address, list2)

{

   if(address.protocol() == QAbstractSocket::IPv4Protocol)

       //我们使用IPv4地址

       qDebug()<< address.toString();

}

 

3、Qt加密算法

使用QCryptographicHash类

该类中包括MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512等加密算法。

1 **********加密开始***********/  

2        QString usernamemd5;  

3        QString pwdmd5;  

4       QByteArray bb;  

5        bb = QCryptographicHash::hash ( password.toAscii(), QCryptographicHash::Md5 );  

6        pwdmd5.append(bb.toHex());  

7        bb = QCryptographicHash::hash(username.toAscii(),QCryptographicHash::Md5);  

8         usernamemd5.append(bb.toHex());  

9 ***********加密结束****************/  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值