Seite 1 von 2

QStrings mittels XOR verknüpfen

Verfasst: 17. August 2009 22:31
von Irods
Hi,
ich finde einfach keine Funktion die zwei QStrings mittels der XOR-Operation verknuepft.
Wisst ihr ob es ueberhaupt schon so eine Funktion fertig gibt?

Schon ma thx und schoenen abend noch.[/b]

Verfasst: 18. August 2009 06:32
von Christian81
Für was soll das gut sein und warum sollte es nicht gehen?

Verfasst: 18. August 2009 07:59
von Curtis Newton

thx

Verfasst: 18. August 2009 15:55
von Irods
Erstmal danke für die Hilfe.
Ich wollte damit eine Verschlüsselung realisieren.
Danke für den Tipp mit QByteArray, hab ich gerade mal ausprobiert,
aber irgendwie kriege ich das
ehrlich gesagt im mom nicht richtig mit QByteArray hin.
Ich probier's mal weiter xD.

Thx Gruss Irods

Verfasst: 18. August 2009 16:52
von upsala
Laß es und nimm was fertiges wie z.B. QCryptographicHash

ne

Verfasst: 18. August 2009 20:17
von Irods
mm ne geht mir ja gerade darum ne verschluesselung zu programmieren xD

Verfasst: 18. August 2009 20:26
von Irods
Hi wahrscheinlich ne ganz doofe Frage:
Wie mach ich am besten aus nem QString ne QByteArray und anders rum?

Verfasst: 18. August 2009 20:32
von Christian81

Verfasst: 18. August 2009 20:39
von Irods
klar hab ich auch schon rein geguckt bin aber zu doof was zu finden wo man dann nicht zwangsläufig ne neue QByteArray oder QString Variable anlegen muss.

Verfasst: 18. August 2009 20:46
von Irods
so ich schreib jetzt einfach ma nen codeschnipseln rein

Code: Alles auswählen

c[0]=QString( ( a.toLocal8Bit() )^( (b.toLocal8Bit()) ) );
c[0], a und b sind QStrings.
also ich will a mit b "XORen" und das ergebnis in c[0] abspeichern.

Verfasst: 18. August 2009 21:03
von upsala
Und? Entspricht das Ergebnis nicht deinen Vorstellungen?

Verfasst: 18. August 2009 21:05
von Irods
ahso ja sry also
der kompiler
haut folgende fehler meldung raus:

Code: Alles auswählen

/usr/include/qt4/QtCore/qbytearray.h:349: Fehler: »QByteArray::operator QNoImplicitBoolCast() const« ist privat
mykrypt.cpp:100: Fehler: in diesem Zusammenhang
Weiss aber nich wie ich diese beheben kann.

Verfasst: 18. August 2009 21:24
von upsala
Zeig mir doch mal den Punkt in der Doku wo von XOR oder ^ die Rede ist.

Verfasst: 19. August 2009 08:02
von Curtis Newton
Irods hat geschrieben:ahso ja sry also
der kompiler
haut folgende fehler meldung raus:

Code: Alles auswählen

/usr/include/qt4/QtCore/qbytearray.h:349: Fehler: »QByteArray::operator QNoImplicitBoolCast() const« ist privat
mykrypt.cpp:100: Fehler: in diesem Zusammenhang
Weiss aber nich wie ich diese beheben kann.
Sorry, sorry, sorry, ich meinte QBitArray. Sorry. Sowas blödes von mir.

QBitArray kan XOR und Konsorten. Du brauchst nur zwei kleine Funktionen für
QString -> QBitArray
und
QBitArray -> QString.

Sorry nochmal.

C.

Verfasst: 19. August 2009 08:52
von androphinx

Code: Alles auswählen

QString crypt (QString text, QString passwd)
{
  QString crypted(text.length());

  for(int i = 0; i < text.length(); i++)
  {
    crypted[i] = QChar(text.at(i).toAscii() ^ passwd.at(i % passwd.lenght()).toAscii());
  }

  return QString(crypted);
}
Mal schnell im Info-Unterricht zusammengeklimpert. Ist nicht gestestet, habe aber so in der Art auch mal ne crypt()-Funktion geschrieben. Verschlüsselt das Passwort auch, wenn es kürzer als der Text ist.

Mfg androphinx

Edit: Musste es nochmal ändern, weil QChar kein XOR kennt.