QT版本:Qt 5.5.1 (MSVC 2013, 32 bit)
Qt Creator版本:Qt Creator 3.5.1 (opensource)
系统:win10
假设有这样一个场景,一个软件的用户帐号个数很少,我们为了方便就将用户帐号和密码存放在配置文件中,但是又不能直接将密码以明文的方式写在配置文件里,需要做一个简单的加密。
我是这样实现的:
1.密码存放在QString变量strPw中
2.将strPw转成utf-8 编码格式,放在QByteArray baPw中
3.将baPW的每一位以字节的方式加或者乘以一个固定的变量,然后重新赋值给strPw
4.将strPw保存到配置文件中
加密代码如下:
QByteArray baPw = strPw.toUtf8();
for (int i = 0;i<baPw.size();i++)
{
baPw[i] = baPw[i]+66;//加密User1的密码
}
strPw = baPw;
settings->setValue("User1key",strPw);
解密代码如下:
QSettings *settings=new QSettings(m_sIniFilePath,QSettings::IniFormat);//m_sIniFilePath为配置文件的路径
QString strPw = settings->value("User1key").toString();//从配置文件中读取账户User1的密码
QByteArray baPw = strPw.toUtf8();
for (int i = 0;i<baPw.size();i++)
{
baPw[i] = baPw[i]-66;//解密User1的密码
}
strPw = baPw;