• 0
ghas1991

تعلم hash باستعمال Qt بكل سهولة

سؤال

بسم الله الرحمن الرحيم

السلام عليكم

درس اليوم ان شاء الله سيكون حول hash

كبداية هناك من لا يعرف ما هو hash و هذا تعريف بسيط له

hash هي طريقة للتشفير لكن لا يمكن فك التشفير نهائيا

اي اذا شفرت ملف معين بhash فانه لا يمكنك فك تشفيره

قد يتسائل البعض لماذا اذن التشفير باستعمال hash و لا يمكننا فك التشفير فيما بعد

مثال بسيط لنعرف فائدة hash

لديك برنامج يطلب كلمة المرور في الحالة العادية ستاخد كلمة المرور من المسخدم و تقارنها بكلمة المرور الصحيحة

لكن هذه الطريقة غير عملية لانها ستجعل كسر البرنامج جد سهل

اما لو استعملت hash فتقرا كلمة المرور من المستخدم ثم تشفرها بhash و تقارنها مع كلمة المرور الصحيحة المشفرة ايضا

اي تقارن كلميتن مشفرتين

هكذا لن تكون بحاجة لفك التشفير

للشتفير بhash في Qt

Qt تقدم صنف خاص بالتشفير بhash هو QCryptographicHash

ما يهمنا منه هو دالة اسمها hash و هي static

اي نستدعيها هكذا QCryptographicHash::hash

و هذا Prototype الدالة

QByteArray QCryptographicHash::hash ( const QByteArray & data, Algorithm method )

الدالة تعيد جدول بايتات

و تستقبل

data و هو ما تريد تشفيره

method و هي خوارزميت التشفير التي تريد استعمالها

و خوارزميات التشفير المهمة و الموجودة في Qt هي

MD4

QCryptographicHash::Md4

MD5

QCryptographicHash::Md5

SHA-1

QCryptographicHash::Sha1

و الافضل هي SHA-1 لانها صعبة الكسر اما MD4 فهي سهلة الكسر نسبيا لكنها سريعة

الان مثال لتشفير نص من نوع QString بhash


#include <QWidget>
#include <QCryptographicHash>
#include <QByteArray>
#include <QString>
#include<QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;

QString s="hash this";
QByteArray bytearr = QCryptographicHash::hash(s.toUtf8(), QCryptographicHash::Sha1);
/*
toUtf8
تعيد QByteArray من خلال QString
*/

//اظهار النتيجة ستكون بHEX

QString hash=bytearr.toHex();//قيمة hex و هي تشفير للنص السابق hash this
QMessageBox::information(&w, "hash this", out); //اظهار النتيجة في صندوق حوار

w.show();
return app.exec();
}
#include <QApplication>

النتيجة

Rlc5H.png

كما ترون هذا هو تشفير للنص hash this بhash باستعمال خوارزمية SHA-1

ارجو ان يكون هذا الدرس البسيط يقدم ولو القليل في مفهوم hash و استعماله في Qt

بالتوفيق

4

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

عليكم السلام...

درس رائع وغني بالمعلومات عن التشفير في Qt...

شكراً لك وبارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

العفو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تسلموو يا أخي...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يعطيك العافية يا الغالي ،،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

العفو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ألف شكر اخي غسان على الشرح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .