Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Jack_AI
Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Die Verzögerung beim Starten ist nicht so schlimm. Aber dass die Bilder so langsam laden, nachdem man das minimierte Fenster wieder aufruft... Das möchte ich vermeiden.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Ich habe mal testweise das halbtransparente PNG-Bild durch ein einfaches, 10x10 Pixel-großes BMP- / JPG-Bild ersetzt. Es dauert genauso lange: ca. 1 Sekunde bei 20 Bildern, unabhängig von Format, Transparenz und Größe.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Zitat von ikaros
8 Bit hat keinen Transparenzkanal.

Du hast recht. Ich habe noch mal nachgeschaut. Es hat 32 Bit.
Zitat von ikaros
Wie sieht es bei einem 2. Aufruf der Form aus?(lange Kompilierungszeit am Start)?
Wie hoch ist die Anzahl(ungefähr)?

Die Kompilierung dauert genau so lange wie sonst auch. Nur das erste Laden ist durch die Bilder verlängert. Das merkt man daran, dass die Bilder nacheinander in die Form "eingesetzt" werden, also es schaut so aus, als ob die Bilder nacheinander aufploppen. Ansonsten merkt man es besonders beim Minimieren und Wiederherstellen des Fensters. Ich verwende momentan ca. 20 Labels + Bilder, es sollen aber später noch mehr werden.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Zitat von ikaros
Ein 32-Bit-PNG also?

Nein, 8 Bit. Nur Graustufen.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Zitat von ikaros
Weiterhin frage ich mich wie du die Halbtransparenz herstellst, da es eine direkte Unterstützung nicht gibt(es sei denn WPF != WinForms).

Also noch mal zur Erklärung: Der Form-Designer erlaubt mir für Labels per Eigenschaft "Image" ein Hintergrundbild für den Text zu wählen. Dafür nehme ich ein halbtransparentes PNG-Bild. Die Transparenz-Eigenschaft wird in dieser Bilddatei gespeichert.

Und davon habe ich eben sehr viele, sodass das Fenster recht lange zum Aufbauen braucht.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Zitat von ikaros
Was soll in einem Label oder Picturebox oder egal was für'n WinFormDing die (Halb)Transparenz bewirken?

Damit hebt sich die Schrift besser von einem heterogenen Hintergrund ab.

Thema: Performant viele (transparente) Bilder
Am im Forum: Grafik und Sound

Hallo Community,

ich habe in meiner Windows-Form mehrere Textstücke / Labels (momentan 20 Stück), die ich gerne mit einem halbtransparenten PNG-Bild unterlegen möchte.

Das Bild selber ist nicht groß (100 x 32 Pixel, ca. 1 kb). Jedoch dauert eine ganze Weile (1 - 2 Sekunden), bis alle Bilder geladen werden. Selbst wenn ich das Fenster nur minimiere und wieder hervor hole.

Ich habe die Bilder alle per Form-Designer als Recourse geladen. Was kann ich tun, damit sich die Bilder schneller aufbauen?

Grüße,
Jack

Thema: String verschluckt nachfolgende Zeichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für den Link.

Es liegt also am Null-Byte. Gibt es eine Möglichkeit ein solches Null-Byte zu entfernen? Mit trim() funktioniert es nicht.

Jack

Thema: String verschluckt nachfolgende Zeichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community,

derzeit stoße ich auf ein Phänomen, das ich mir nicht erklären kann: Bestimmte Strings, wenn ich sie ausgeben lasse, "verschlucken" nachfolgende Zeichen. Wenn ich zum Beispiel diesen Code ausführe,

MessageBox.Show("***" + EinString + "***");

wird nur "***Foobar" (ohne nachfolgende Sternchen) ausgegeben. Ich vermute, das hat eventuell etwas mit Arrays und Trennzeichen zu tun. Vielleicht weiß hier jemand genauer, wodurch das verursacht wird.

Grüße,
Jack

Thema: Member nur in der Klasse ändern, aber nach außen sichtbar
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Am besten du machst die Liste selbst private, und greift darauf über eine public-Methode zu, die den Wert ausgibt / ändert.

Thema: Problem mit if in Schleife
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Da "befehl" vom Typ String ist, solltest du besser mit befehl.Equals() den Wert prüfen, anstatt mit ==.

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Danke für deinen umfassenden Kommentar und deine Bedenken, Jules Papillon.

Ich werde später, wenn mein Sicherheitskonzept umgesetzt ist, es in einem neuen Thread umfangsreich präsentieren.

Grüße,
Jack

Thema: myCSharp.de hat jetzt seine eigene Stadt
Am im Forum: Ankündigungen

Noch ein paar weitere Informationen (falls noch nicht bekannt):

- mit Ä kann man auf der Karte hinauszoomen und mit 1 wieder hineinzoomen
- was es mit "next nuke" auf sich hat
- ein paar allgemeine Antworten und Formeln (Mini-FAQ)
- die verschiedenen Gebäudetypen

Lasst euch davon nicht abhalten, weiterhin unsere Stadt zu besuchen. Es gibt noch einiges zu entdecken.

Jack

Thema: Es sei erwähnt: herbivore --> 30k Posts
Am im Forum: Smalltalk

Von mir auch Glückwunsch und Danke für die vielen, vielen hilfreichen Posts.

Jack

Thema: Zeitgeist - The Movie
Am im Forum: Smalltalk

Zitat von kubi
Du urteilst also über Leute nach einer Szene und kannst diese ( auch mich ) nicht mehr ernst nehmen. hehe ... nice Einstellung, kann es nicht sein das du dich dadurch selbst etwas diskreditierst ...

Oha, da hat jemand die Schwachstelle in meinem Beitrag entdeckt.

Ich hatte schon damit gerechnet, dass jemand früher oder später diesen Schwachpunkt erkennen und gnadenlos gegen mich richten wird.

Aber Spaß beiseite. Dein Beitrag zeigt schon, warum ich das nicht kann.

Einigen wir uns darauf, dass man über den Film sehr kontrovers diskutieren kann und dass es Meinungen dazu auf beiden Extremen gibt. Damit ist alles gesagt, kein Grund also, über den inhaltslosen Schund aus diesem Film weiter zu diskutieren. Bzw. ihr dürft das gerne.

Jack

Thema: myCSharp.de hat jetzt seine eigene Stadt
Am im Forum: Ankündigungen

Hallo Peter Bucher.

Zitat von Peter Bucher
Und: Iiiiiik, was ist denn das? PHP? :-)

Ja. Zu erkennen an der Dateiendung.

Jack

Thema: myCSharp.de hat jetzt seine eigene Stadt
Am im Forum: Ankündigungen

Hallo.

Ich habe etwas interessantes gefunden. Scheint der Quelltext von MyMiniCity zu sein:

Datei-Übersicht
Funktionen

Jack

Thema: Arbeitsspeicher und Sicherheit
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo.

Mir ist die Sicherheit meiner C#-Programme sehr wichtig.

Nun ist mir eingefallen, dass sich z.B. per Zeigern aus C++ der Arbeitsspeicher auslesen und manipulieren lässt. Deshalb würde ich gerne wissen, wie ich meine Variablen vor Manipulation schützen kann. Hat das etwas mit der Sichtbarkeit (private, public, ...) von Variablen zu tun?

Grüße und Danke im Voraus,
Jack

Thema: Zeitgeist - The Movie
Am im Forum: Smalltalk

Ich bin mal durch Zufall auf einen Ausschnitt zu diesem Film auf YouTube gestoßen.

Unter anderem wird dort impliziert, dass frühere Gottheiten, wie Jesus, alle am 24. Dezember geworden sein sollen. Und immer mit dem Hinweis "Recherchiert das doch nach! Ihr werdet schon sehen, das stimmt!".

Sehr zweifelhaft, dass das Geburtsdatum von Gottheiten irgendwie dokumentiert und bis heute erhalten ist. Rein logisch gesehen sollten da bei den Leuten Zweifel aufkommen, ob das stimmen kann. Es ist nicht mal klar, ob Jesus wirklich am 24.12. geboren ist.

Und alles in so einer esoterischen Aufmachung, mit der Botschaft "Wenn du diesen Film schaust, weißt du mehr als andere. Das ist alles die Wahrheit."

Sorry, aber Leute, die sich dazu verführen lassen, an sowas zu glauben, kann ich nicht ernst nehmen.

Meine Kritik anhand einer Szene.

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Ich habe es jetzt lösen können. Ich habe mich schweren Herzens von dem komplexen Rijndael von weiter oben getrennt und stattdessen diesen mit ein paar Modifikationen übernommen.

Vielleicht kann mir hier jemand mit einem allgemeineren Problem noch helfen:
Ist Rijndael mit 128 Bits, ohne Salt und ohne weitere Iterationen im CBC-Modus sicher genug, damit verschlüsselter Text vor Hackern ohne spezielle Hardware sicher ist?

Grüße,
Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Hallo noch mal,

nach einiger Recherche / Ursachenforschung habe ich entdeckt, dass sich der C#-Rijndael von der PHP-Verschlüsselung insbesondere bei der "Salzung", also dem Hinzufügen eines Salt-Wertes, unterscheidet.

Für den Salt-Wert habe ich zwar dies hier für PHP gefunden:
[php]mhash_keygen_s2k(MHASH_SHA1, $keyClear, $salt, 16);[/php]

Dieser Algorithmus heißt S2K. Der C#-Rijndael benutzt aber einen Salt-Algorithmus aus der Klasse "PasswordDeriveBytes", laut Hilfetext eine Erweiterung des PBKDF1-Algorithmus. Hier scheint in erster Linie das Problem zu liegen. Man muss also einen Salt-Algorithmus finden, der für PHP wie C# gleichermaßen funktioniert. Bisher sieht es so aus, als ob S2K und PBKDF1 nicht für C# wie PHP gleichermaßen vorhanden sind.

Ich habe allerdings noch nicht versucht, C# und PHP mit einem ungesalzenen Passwort miteinander abzugleichen. Das werde ich dann demnächst mal versuchen.

Ansonsten noch ein paar ausstehende Antworten und Ergänzungen:

@m0rius: Dieser Wikipedia-Artikel ist auch ganz interessant. Demnach hat RC6 gar nicht sooo toll abgeschnitten. Ganz zu schweigen davon, dass ich nirgens eine Implementation von RC6 für C# gefunden habe. Also versuche ich es weiterhin mit Rijndael.

@SunboX:
Ich habe den Algorithmus aus deinem letzten Post mal ausprobiert. Merkwürdigerweise habe ich einen anderen Ursprungstext beim Entschlüsseln erhalten. Das war auch bei manch anderen Rijndael-Beispielen für PHP so. Aber vielleicht bin ich auch einfach nur zu doof dafür. ^^

@tscherno:
Danke für die Erklärung! Jetzt habe ich das mit dem IV besser verstanden.

Jack


edit: Mir ist übrigens eingefallen, dass eventuell mein ganzes Konzept einen entscheidenden Fehler hat. Ich will eigentlich Datenbank-Strings in C# verschlüsseln, an PHP senden, um es dort wieder zu entschlüsseln, und dann in eine Datenbank eintragen. Dabei habe ich gar nicht daran gedacht, dass die Verschlüsselung und ihre Parameter im Programm-Code mittels Reflector einsehbar sind. Argh!

Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Hallo m0rius,

na ja, soweit ich weiß wird er zwar als Standard für WLAN (WEP) eingesetzt, allerdings soll sich WEP von Tools wie Aircrack in den meisten Fällen in unter einer Minute knacken lassen.

Kurzes Zitat dazu aus Wikipedia:

Zitat
[...]some ways of using RC4 can lead to very insecure cryptosystems such as WEP.

und
Zitat
[...]today a WEP connection can be cracked with readily available software within minutes.

Ich versuche es also weiterhin mit Rijndael, auch wenn ich es noch immer nicht geschafft habe, es mit PHP zu synchronisieren. Leider.

Jack

Thema: MD5: C# vs. PHP
Am im Forum: Rund um die Programmierung

Kleine Ergänzung:
Ich habe ewig gesucht, warum bei mir ein PHP-MD5 ein anderes Ergebnis bringt, als ein C#-MD5. Ich habe es mit diesem Algorithmus versucht:


    public static string MD5(string Original)
    {
      byte[] textBytes = System.Text.Encoding.Default.GetBytes(Original);

      try
      {
        System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
        cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] hash = cryptHandler.ComputeHash(textBytes);
        string ret = "";
        foreach (byte a in hash)
        {
          if (a < 16)
            ret += "0" + a.ToString("x");
          else
            ret += a.ToString("x");
        }
        return ret;
      }
      catch
      {
        throw;
      }
   }

Der Code funktioniert. Der Fehler lag bei mir schließlich in einem versteckten deutschen Umlaut. Also vorher irgendwie entfernen oder umwandeln. Außerdem besser StringBuilder im Code verwenden.

Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

@SunboX: Interessanter Code. Danke dafür.

Aber was ich an diesem Code, und auch bei den meisten anderen PHP-Beispielen nicht verstehe ist, wie das mit diesen ganzen Zufallswerten (MCRYPT_RAND, rand()...) funktionieren soll. Schließlich soll die Entschlüsselungsfunktion nicht mit irgendwelchen Zufallswerten rumspielen, sondern meinen Text 1 zu 1 mithilfe meiner Angaben zurückgeben.

Des Weiteren benutzt das Script leider Rijndael im Modus ECB, während mein C#-Rijndael im Modus CBC ist. Ich weiß allerdings nicht, in wie fern sich das genau unterscheidet.

@tscherno: Nein, PHP kennt nicht den Datentyp Byte, geschweige denn das Byte-Array. Ich kann mir vorstellen, dass diese Umkonvertierungen von der Funktion mcrypt_decrypt übernommen werden. Intern basiert PHP ja auf C. Dort sollte es Byte als Datentyp geben.

Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

@SunboX:

Danke für die Links. Deine Antwort bezog sich bestimmt auf die Problematik mit dem fehlenden mcrypt-Modul. Die beiden Scripte kenne ich schon. Das Problem mit dem Modul habe ich inzwischen gelöst. Aber jetzt habe ich ein neues Problem... (siehe weiter oben)

Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Hallo noch mal.

Ich bekomme es nicht hin, einen verschlüsselten String von C# in PHP wieder zu entschlüsseln.

Für die C#-Verschlüsselung habe ich den Rijndael-Algorithmus (128 Bit; CBC) von dieser Seite übernommen.

Mein PHP-Entschlüsselungs-Versuch sieht so aus, doch es wird ein anderer Ursprungstext ausgegeben. Das Beispiel mit der Key-Erzeugung habe ich von hier (PDF).


// Beispielwerte

// $data ist der in C# verschlüsselte String "Das ist ein Test!" mit unten stehenden Angaben
$data = "W1i3cV+UNomxirVKygSywBJStgaT16hoffrCqP5swDo=";
// der Key im Klartext
$keyClear = "Passwort";
// der Salt-Wert
$salt = "Salt" 
// ein 16 Zeichen langer IV
$iv = "16ZeichenLaenge!"; 

// Der Versuch den Key so zu erzeugen, wie es das C#-Beispiel macht
$key = mhash_keygen_s2k(MHASH_SHA1, $keyClear, $salt, 16);

$decryptData = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key,$data,MCRYPT_MODE_CBC,$iv);

// Ausgabe
echo base64_encode($decryptData);

Ich hoffe, ihr könnt mir auf die Sprünge helfen, damit mir PHP wieder meinen String "Das ist ein Test!" ausgibt.

Danke!
Jack

edit: Noch ein Hinweis. Mir ist der Thread aus herbivores Post bekannt. Es handelt sich dabei um einen anderen Rijndael-Algoritmus.

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Hallo m0rius,

ich habe mich mal bisschen zu RC4 erkundigt. Ich glaube in dem Punkt widersprechen sich die deutsche und die englische Wikipedia, da die englische Wikipedia andeutet, dass RC4 recht unsicher ist... falls ich das richtig verstanden habe.

Ich habe das Problem so gelöst, dass ich meinen Provider davon überzeugt habe, mir das Paket mcrypt zu installieren. Anders geht es wohl leider nicht. Zumindest nicht ohne höhere Kryptographie-Kenntnisse.

Jack

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Das Problem an dem Beispiel ist, dass es eben auf mcrypt basiert. Erkennbar an der Zeile:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

Und das habe ich eben nicht.

Thema: C#-Verschlüsselung mit PHP synchronisieren (noch ein Problem...)
Am im Forum: Rund um die Programmierung

Hallo.

Ich möchte gerne von einem C#-Programm einen verschlüsselten MySQL-Befehl an ein PHP-Script schicken. Das Script soll denn Befehl dann entschlüsseln und abarbeiten.

Als Verschlüsselungsmethode möchte ich gerne Rijndael/AES benutzen. Jetzt zu dem Problem: Für C# habe ich einen Rijndael-Algorithmus gefunden, der auch wunderbar funktioniert. Aber ich habe kein entsprechendes Gegenstück für PHP, das verschlüsselte String wieder entschlüsseln kann. Es gibt zwar anscheinend soetwas in einem PHP-Paket namen mcrypt, aber das ist auf meinem Webspace nicht installiert.

Daher meine Fragen an euch, wenn ihr dasselbe Problem hattet oder euch damit auskennt:
- Wie habt ihr das Problem gelöst?
- Gibt es einen Rijndael-Algorithmus im Modus "CBC" für PHP? (außer in mcrypt)
- Gibt es eine andere sichere Möglichkeit, von C# Daten zu verschlüsseln und von PHP entschlüsseln zu lassen?

Danke schon mal im Voraus,
Jack

Thema: Erfahrung mit .NET Reactor?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von DonMaxo
Wer Passwörter etc. als Klartext in einer Anwendung deklariert ist selbst Schuld

Ich weiß bis heute nicht, wie man das bei einer Verbindung zu einer festgelegten Datenbank sonst machen soll...
Zitat von gurgel
Der Library Mode ist zwar eigentlich für Libraries gedacht, es spricht jedoch nichts dagegen ihn auch für Programme einzusetzen (wie es der Programmautor im übrigen auch tut).

Kann ich also jetzt mein Datenbankpasswort im Quelltext im Klartext abspeichern?

Jack