⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database.cpp

📁 KeePassX用于保护密码的安全
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2005 by Tarek Saidi                                     * *   mail@tarek-saidi.de                                                   * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/#include "Database.h"#include "lib/random.h"KpxUuid::KpxUuid(){	Data.fill(0,16);}KpxUuid::KpxUuid(const void* src){	fromRaw(src);}void KpxUuid::generate(){	char uuid[16];	getRandomBytes(uuid,16);	quint32 Secs=QDateTime::currentDateTime().toTime_t();	quint16 mSecs=QTime::currentTime().msec();	mSecs=(mSecs & 0x3FF) | (*((quint16*)(uuid+4)) & 0xFC00); //msec has only 10 Bits, filling the rest with random data	memcpy((void*)uuid,&Secs,4);	memcpy((void*)(uuid+4),&mSecs,2);	Data=QByteArray(uuid,16);}QString KpxUuid::toString()const{	QString hex;	Q_ASSERT(Data.length()==16);	for(int i=0;i<16;i++){		QString HexByte;		HexByte.setNum((unsigned char)*(Data.data()+i),16);		if(HexByte.length()<2)HexByte="0"+HexByte;		hex+=HexByte;	}	return QString("{%1-%2-%3-%4-%5}")			.arg(hex.mid(0,8))			.arg(hex.mid(8,4))			.arg(hex.mid(12,4))				.arg(hex.mid(16,4))														.arg(hex.mid(20,12));}void KpxUuid::toRaw(void* dst)const{	memcpy(dst,Data.data(),16);}void KpxUuid::fromRaw(const void* src){	Data=QByteArray((char*)src,16);}bool KpxUuid::operator==(const KpxUuid& other)const{	return other.Data==Data;}bool KpxUuid::operator!=(const KpxUuid& other)const{	return other.Data!=Data;}QString KpxDateTime::toString(Qt::DateFormat format) const{if(*this==Date_Never)return QObject::tr("Never");else return QDateTime::toString(format);}QString KpxDateTime::dateToString(Qt::DateFormat format) const{if(*this==Date_Never)return QObject::tr("Never");else return date().toString(format);}CEntry::CEntry(){ImageID=0;OldImgID=0;GroupID=0;Creation=QDateTime::currentDateTime();LastMod=QDateTime::currentDateTime();LastAccess=QDateTime::currentDateTime();Expire=QDateTime(QDate(2999,12,28),QTime(23,59,59)); //NeverBinaryData=QByteArray();}bool CGroup::UI_ExpandByDefault=true;bool CEntry::operator==(const CEntry& e)const{if(sID==e.sID)return true;else	      return false;}bool CGroup::operator==(const CGroup& g)const{if(ID==g.ID)return true;else	      return false;}CGroup::CGroup(){Creation=QDateTime::currentDateTime();LastAccess=QDateTime::currentDateTime();LastMod=QDateTime::currentDateTime();Expire=QDateTime(QDate(2999,12,28),QTime(23,59,59));Level=0;ImageID=0;OldImgID=0;Name="<Group>";UI_ItemIsExpanded=UI_ExpandByDefault;}CGroup::~CGroup(){}CEntry::~CEntry(){}Database::Database(){file=NULL;KeyEncRounds=6000;CryptoAlgorithmus=ALGO_AES;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -