How to calculate hash for a text using QCryptographicHash in Qt
NegInfinity
(Talk | contribs) (NegInfinity - - →Main.cpp) |
hamishwillee
(Talk | contribs) m (Hamishwillee - Updated articlemetadata) |
||
| Line 2: | Line 2: | ||
{{ReviewerApproved|user=[[User:Hamishwillee|<br />----]]|timestamp=20110915233119 }} | {{ReviewerApproved|user=[[User:Hamishwillee|<br />----]]|timestamp=20110915233119 }} | ||
{{ArticleMetaData | {{ArticleMetaData | ||
| − | |platform=S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition | + | |platform=S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition, Symbian^3, Qt 4.6, Qt 4.7 |
| − | |devices= | + | |devices= Nokia C5-00S60, Emulator, Simulator |
|creationdate=10 April 2009 | |creationdate=10 April 2009 | ||
|keywords=QCryptographicHash | |keywords=QCryptographicHash | ||
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | |sdk= | + | |sdk=[http://www.developer.nokia.com/info/sw.nokia.com/id/da8df288-e615-443d-be5c-00c8a72435f8/Qt_SDK.html Qt SDK 1.1.3] |
| − | |devicecompatability= | + | |devicecompatability=All which support Qt |
|signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | |signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) --> | |capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) --> | ||
|author=[[User:Mind freak]] | |author=[[User:Mind freak]] | ||
| − | |||
|reviewer=[[User:NegInfinity]] | |reviewer=[[User:NegInfinity]] | ||
|timestamp=20110915 | |timestamp=20110915 | ||
Revision as of 02:52, 19 September 2011
Article Metadata
Tested with
SDK: Qt SDK 1.1.3
Devices(s): Nokia C5-00S60, Emulator, Simulator
Compatibility
Platform(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition, Symbian^3, Qt 4.6, Qt 4.7
Device(s): All which support Qt
Article
Keywords: QCryptographicHash
Created: mind_freak
(10 Apr 2009)
Reviewed: NegInfinity
(15 Sep 2011)
Last edited: hamishwillee
(19 Sep 2011)
Contents |
Introduction
This example shows how to calculate hash for a text string using QCryptographicHash.
Some Related Function
- Adds the data to the cryptographic hash:
QByteArray string = "Nokia";
QCryptographicHash hasher(QCryptographicHash::Sha1);
hasher.addData(string);
- Returns the final hash value.
QByteArray string1=hasher.result();
Source Code
Main.cpp
#include <QtGui/QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QCryptographicHash>
#include <QString>
#include <QByteArray>
#include <QLineEdit>
#include <QLabel>
#include <QGridLayout>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char **argv){
QApplication app(argc, argv);
QWidget mainWindow;
QGridLayout* layout=new QGridLayout();
//widget initialization
QLineEdit *hashTextEdit=new QLineEdit(),
*originalTextEdit = new QLineEdit();
originalTextEdit->setReadOnly(true);
originalTextEdit->setText(QObject::tr("Nokia"));
hashTextEdit->setReadOnly(true);
QLabel *hashLabel=new QLabel(QObject::tr("MD4 &Hash:")),
*originalTextLabel = new QLabel(QObject::tr("Original &Text:"));
hashLabel->setBuddy(hashTextEdit);
originalTextLabel->setBuddy(originalTextEdit);
//widget placement
layout->addWidget(originalTextLabel, 0, 0);
layout->addWidget(originalTextEdit, 0, 1);
layout->addWidget(hashLabel, 1, 0);
layout->addWidget(hashTextEdit, 1, 1);
//bottom layout initialization ("close" button)
QHBoxLayout* bottomLayout = new QHBoxLayout();
bottomLayout->addStretch();
QPushButton* closeButton = new QPushButton(QObject::tr("C&lose"));
bottomLayout->addWidget(closeButton);
bottomLayout->addStretch();
bottomLayout->setMargin(0);
layout->addLayout(bottomLayout, 2, 0, 1, 2);
QObject::connect(closeButton, SIGNAL(clicked()), &mainWindow, SLOT(close()));
mainWindow.setLayout(layout);
//actual hash calculation TODO: make proper widget with signal/slots for hash calculation
QCryptographicHash hash(QCryptographicHash::Md4);
hash.addData(originalTextEdit->text().toUtf8());
hashTextEdit->setText(QString(hash.result().toHex()));
mainWindow.showMaximized();
return app.exec();
}


