今天试着用QFile对密码进行加密和解密时遇到一个问题,就是保存多个账户密码时只有第一个账户密码可以正确解密。
//--保存账号信息
void MainWindow::SaveAcc(const QString &name,const QString &passwd)
{
QFile file("accinfo.data");
file.open(QIODevice::WriteOnly | QIODevice::Append);
QString str;
str.append(name);
str.append(":");
str.append(passwd);
str.append(",");
EncodeAcc(str);
QByteArray a;
a = str.toAscii();
file.write(a);
file.close();
}
//---对账号信息进行加密
void MainWindow::EncodeAcc(QString &name)
{
QString str = name;
name.clear();
QByteArray bb = str.toAscii();
bb = bb.toBase64();
name.append(bb);
}
//加载文件并解密
void DlgLogin::loadAcc(QString usrname[],QString passwd[])
{
QFile file("accinfo.data");
file.open(QIODevice::ReadOnly);
QByteArray a = file.readAll();
if (a != "")
{
QString b = QString(a);