wx.ListCtrl Hintergrundfarbe einer Zelle nicht Zeile

Plattformunabhängige GUIs mit wxWidgets.
Antworten
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Schlüsselworte (Grid, Event, EVT_GRID_ROW_SIZE. EVTwx.grid.Grid, wx.grid)

Also, nach vielen unzähligen Try And Error-Versuchen:

Code: Alles auswählen

import wx.grid
# self ist hier eine Instance von wx.grid.Grid
wx.grid.EVT_GRID_ROW_SIZE(self, self.Event)
# self.Event ist eine Methode, welche ich erstellt habe. Sie wird nun ausgelöst, wenn der Anwender versucht, die Zeilenhöhe zu ändern.
nur zur Veranschaulichung...

Weiter gehts ;-)
JR
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

ohne Kommentar :oops:

Code: Alles auswählen

wx.grid.Grid.DisableDragRowSize()
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

EDIT:
gerold hat geschrieben: [...]
Dieser Hashwert ist ziemlich eindeutig und kann nur mit sehr hohem Rechenaufwand zurückgerechnet werden.
[...]
Sorry, wenn ich einlenke aber das ist so nicht ganz richtig. Ist nicht böse gemeint, sondern soll nur zur Information dienen :)

Erstens ist der Hash nicht 100%ig eindeutig, da der MD5 Algorithmus schwächen bietet und es durch die schwächen mehrere Kollisionen gibt, die genau auf den gleichen Hash kommen.

Zweitens ist es nicht möglich den Hash wider zurückzurechnen, da es irreversibel ist. Was aber richtig ist, ist das man auf "Jagt" nach Kollisionen gehen kann (Z.B. Mit einer Bruteforce Attacke). Sprich: Zu jedem aus einer Zeichenkette gebildeten MD5-Hash, existiert mindestens eine Kollision. Das heißt, dass es mindestens ein andere Zeichenkette gibt die genau den gleichen MD5-Hash erzeugt! Das hat aber nichts mit zurückrechen zu tun oder das man auf die exakt gleiche Zeichenkette wider zurückkommt. Das ist im Technisch nicht möglich, da wie gesagt irreversibel.

Mehr zum Thema: http://de.wikipedia.org/wiki/Md5

Und noch was zum Thema Sicherheit: Die Möglichkeit auf einer Kollision zu treffen liegt zwar im """Astronomischen""" bereich (weiß leider nicht genau wie groß die Chancen sind), aber es ist dennoch nicht ausgeschlossen darauf zu stoßen, wie der Artikel vom wiki und diverse andere Projekte bewiesen haben und beweisen.

Es gibt aber eine Möglichkeit die Sicherheit noch weiter zu steigern:
zum Beispiel bildet die Foren Software vBulletin folgendermaßen einen Hash:

$md5Hash = md5( md5($password) . $userinfo->salt);
  • Also es wird einmal aus dem Passwort ( md5($password) ) ein MD5 Hash gebildet.
  • Es wird dann einmalig eine zufällige Ziffer (salt) gebildet die in die DB gespeichert wird von dem jeweiligen Benutzer!
  • Danach wird aus der zufälligen Ziffer und dem gebildeten MD5 Hash eine neuer MD5 Hash gebildet, der dann ebenfalls in die DB gespeichert wird.
  • SO, wenn sich dann der Benutzer das nächste mal mit seinem Password einloggen will, wird aus dem eingegebenen Passwort wider eine MD5 Hash gebildet und dann aus diesem Hash und der Zufallszahl in der DB, wider ein Hash gebildet, der dann mit dem Hash in der DB vergleichen wird.
Diese Methode erhöht die Sicherheit sehr, weil man dann einmal für md5( md5($password) . $userinfo->salt); eine Kollision finden muss und danach die Kollision für md5($password) und dann auch noch die Zufallsziffer $userinfo->salt) finden muss ;) :D

Wie das in phpBB implementiert ist weiß ich nicht, da ich bisher noch nicht dazu gekommen bin das zu Analysieren . Aber ich denke die Entwickler werden ähnlich vorgegangen sein, um die Schwächen des MD5 Algorithmus zu kompensieren ;)

lg xtra
Antworten