×
Namespaces

Variants
Actions
(Difference between revisions)

How to calculate hash for a text using QCryptographicHash in Qt

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update - Fix Article Metadata and other minor issues)
hamishwillee (Talk | contribs)
m (Hamishwillee - Fix typo)
Line 1: Line 1:
[[Category:Qt]][[Category:UI]][[Category:Code Snippet]]
+
[[Category:Qt]][[Category:UI]][[Category:Code Snippet]][[Category:MeeGo]][[Category:Symbian]][[Category:QWidget UI]]
 
{{Abstract|This code snippet shows how to calculate hash for a text string using {{Qapiname|QCryptographicHash}}. }}
 
{{Abstract|This code snippet shows how to calculate hash for a text string using {{Qapiname|QCryptographicHash}}. }}
{{ArticleNeedsUpdate|timestamp=20120209053618|user=[[User:Hamishwillee|<br />----]]|Needs to remove the QWidget based UI components of this article as Qt Quick is now recommened.}}
+
{{ArticleNeedsUpdate|timestamp=20120209053618|user=[[User:Hamishwillee|<br />----]]|Needs to remove the QWidget based UI components of this article as Qt Quick is now recommended.}}
 
{{ArticleMetaData <!-- v1.2 -->
 
{{ArticleMetaData <!-- v1.2 -->
 
|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]]) -->
Line 25: Line 25:
 
}}
 
}}
  
== Some Related Function ==
+
== Important functions ==
 
*Adds the data to the cryptographic hash:
 
*Adds the data to the cryptographic hash:
  
Line 103: Line 103:
 
==ScreenShot==
 
==ScreenShot==
  
[[File:hash.png]][[Category:MeeGo]] [[Category:Symbian]]
+
[[File:hash.png]]

Revision as of 07:08, 23 February 2012

This code snippet shows how to calculate hash for a text string using QCryptographicHash.

Needs-update.pngThis article needs to be updated: If you found this article useful, please fix the problems below then delete the {{ArticleNeedsUpdate}} template from the article to remove this warning.

Reasons: hamishwillee (09 Feb 2012)
Needs to remove the QWidget based UI components of this article as Qt Quick is now recommended.

Article Metadata
Tested with
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
Symbian
Device(s): All which support Qt
Article
Keywords: QCryptographicHash
Created: mind_freak (10 Apr 2009)
Reviewed: NegInfinity (15 Sep 2011)
Last edited: hamishwillee (23 Feb 2012)

Contents

Important functions

  • 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();
}

ScreenShot

Hash.png

271 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×