Zum Inhalt springen

LukOnline

Mitglieder
  • Gesamte Inhalte

    134
  • Benutzer seit

  • Letzter Besuch

Beiträge von LukOnline

  1. Hallo lilith2k3,

    vielen Dank erstmal für deine schnelle Antwort.

    Leider verwirrt mich das nur noch mehr... :old

    Also mal ganz Prinzipiell, was ist jetzt der Mindestaufbau den ich brauche?

    In welcher Reihenfolge muss ich was machen?

    Bisher habe ich die Daten mit einem selbst-gebastelten SQL String über den Primärschlüssel abgefragt (OleDbCommand) und die einzelnen Werte direkt in die TextBoxen geschrieben.

    Nur das zurück in die DB speichern ist mit dieser Methode schwieriger, weil man nur schwer über überprüfen kann wo sich was geändert hat bzw etwas neu hinzugekommen ist...

  2. Hallo Leute!

    Folgender Sachverhalt ist gegeben:

    Ich bekomme im Konstruktor meines Forms einen Primary Key aus einer Tabelle übergeben.

    Zu diesem Key möchte ich den zugehörigen Datensatz anzeigen lassen.

    (in meinen Textfeldern)

    Wenn man nun etwas in einem Textfeld ändert, soll dann nach einen Knopfdruck der geänderte Wert gespeichert werden.

    Nur genau da komme ich nicht weiter...

    Vielleicht weiß ja jemand von euch weiter.

    Hier erstmal der Code:

    
        public partial class Form1 : Form
    
        {
    
            private DataSet DS;
    
            private OleDbConnection Connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Luk\\Documents\\Visual Studio 2005\\Projects\\Kontakt-Manager\\Kontakt-Manager\\Adressbuch\\Adressbuch.accdb;Jet OLEDB:Database Password=Test;");
    
            private string SQL = "SELECT VNAME FROM kontakte WHERE ID = 36";
    
    
            public Form1()
    
            {
    
                InitializeComponent();
    
    
                this.DS = this.CreateDataSet();
    
                this.textBox1.DataBindings.Add("Text", this.DS.Tables["kontakte"], "VNAME");
    
            }
    
            private DataSet CreateDataSet()
    
            {
    
                DataSet DS = new DataSet();
    
    
                OleDbDataAdapter DA = new OleDbDataAdapter(this.SQL, Connection);
    
                DA.Fill(DS, "kontakte");
    
    
                return DS;
    
            }
    
    
            private void button1_Click(object sender, EventArgs e)
    
            {
    
                OleDbDataAdapter DA = new OleDbDataAdapter(this.SQL, this.Connection);
    
                DA.Update(DS, "kontakte");
    
            }
    
        }
    
    

    Danke schonmal für eure Hilfe,

    Luk

  3. Hey, danke erstmal für deine schnelle Antwort!

    [img=http://www.casio-europe.com/de/images/_clear.gif] 			128 physikalische Konstanten und 383 mathematische Funktionen

    Das bedeutet, Wurzel, Potenzen,... sind auch dabei, richtig?

    edit: Du solltest auch vor der Prüfung ein paar mal die Umrechnungen damit ausprobieren. Wärst nicht der erste der sich nen Taschenrechner kauft und in der Prüfung bemerkt, dass er damit nicht umgehen kann.

    Danke für den Tip :D

  4. Ja, da hast du recht, aber es geht ja nicht nur um das eine Bild.

    Mit dem gleichen Passwort sind noch andere Bilder und eine Access DB geschützt (Ich weiß, dass der Access-Schutz nur eine minimale Hürde ist).

    Das Problem ist halt einfach, dass ich das Passwort dann ja im Klartext hätte, wenn ich die beiden Bilder mit xor verknüpfe.

    Und das ist doch schlecht...

    Deswegen könnte man das Passwort ja vorher im Quellcode chiffrieren.

    Z.b.

    1. Groß / Kleinschreibung vertauschen.

    2. Die Buchstaben wie folgt vertauschen. Nennt sich monoalphabetische Chiffre.

    
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
    HIJKLMNOPQRSTUVWXYZABCDEFG
    
    

    (das ganze nochmal mit Kleinschreibung)

    3. Das Wort in sich verwürfeln: Tausche Buchstabe [3] mit [0],...

    Oder einfach das Passwort rückwärts schreiben.

    4. Zum Schluss vielleicht den Buchstaben immer noch in der ASCII Tabelle um X erhöhen. Aus A wird mit einer 3 dann zum Beispiel ein D. (A Dez = 65 + 3 = 68; 68 Dez = D)

    5. Ziffern um x erhöhen.

    Wenn ich dann die Bilder xore komme ich möglicherweise auf sJ1dN9f

    Und daraus das Passwort wiederherzustellen würde ich als knifflig bis schwer bezeichnen... Solange der Quellcode geheim bleibt.

    Apropos: Wie sieht es überhaupt aus mit Decompilern für C#.

    Funktioniert das oder eher nicht?

    Danke schonmal, Luk

  5. Hallo zusammen,

    mir ist da noch etwas interessantes eingefallen.

    Wenn die Vernam-Verschlüsselung einfach auf XOR basiert, dann kann ich natürlich ohne das Passwort nicht entschlüsseln.

    Aber ein Problem bildet sich ab: Wenn ich die verschlüsselte und die Original-Datei habe, kann ich das Passwort errechnen, oder sehe ich das falsch? :-O

    Wie kann man dem entgegenwirken? Das Passwort im Quellcode modifizieren?

    Vielleicht die einzelnen Chars verwürfeln? Ist für die Verwürfelung ein weiterer Schlüssel angebracht? Oder vielleicht eine monoalphabetische Chiffrierung?

    Würde mich über eure Antworten freuen!

    Gruß Luk

  6. Hey,

    ich könnte dir einen von mir erstellten Taschenrechner geben.

    Etwas umbauen musst du ihn aber.

    Er hat nur ein Textfeld, wo alle Operatoren und Operanden reingeschrieben bzw geklickt werden.

    Die Methode berechen() bekommt also einen String übergeben und gibt einen double (oder decimal?) Wert zurück.

    Zum ausrechnen habe ich mir aber einen fertigen Formelparser heruntergeladen. (Die Berücksichtigung von Potenzen, Punkt-vor-Strich,... ist sehr aufwändig)

    Es gibt nur ein Problem: Ich bin Pendler und habe zur Zeit Urlaub und bin bis ins neue Jahr bei meiner Familie. Den Rechner habe ich auf Arbeit oder zuhause... Komme also erst am 03.Jan wieder ran.

    Wenn du magst kannst du mich ab da nochmal anschreiben. (ICQ bitte!)

    Hoffe, dass es dir bis dahin ausreicht.

    Gruß, Luk

  7. OK, ich bins schon wieder =)

    Habe die Lösung doch noch gefunden!

    
    // using System.Collections.Generic;
    
    // using System.Text;
    
    using System;
    
    using System.Drawing;            // Verweis einbinden!
    
    using System.IO;
    
    
    namespace VernamVerschlüsselung
    
    {
    
        class Program
    
        {
    
            static void Main()
    
            {
    
                // Bild von Datei einlesen:
    
                Image originalImage = Image.FromFile("TestBild.jpg");
    
    
                // Bild verschlüsseln:
    
                EncryptImage(originalImage, "TestBild_verschlüsselt.jpg", "Passwort");
    
    
                // Bild entschlüsseln:
    
                Image newImage = DecryptImage("TestBild_verschlüsselt.jpg", "Passwort");
    
    
                // Bild in Datei speichern:
    
                newImage.Save("TestBild_entschlüsselt.jpg");
    
            }
    
    
            private static void EncryptImage(Image img, string encryptedFile, string keyFile)
    
            {
    
                // Verschlüsselung des Bildes
    
    
                int Laenge = keyFile.Length;
    
                int Zeichen = 0;
    
    
                ImageConverter ic = new ImageConverter();
    
                byte[] originalBytes = (byte[])ic.ConvertTo(img, typeof(byte[]));
    
    
                // Schlüssel erzeugen - Länge genau wie die originalen Bytes
    
                byte[] keyBytes = new byte[originalBytes.Length];
    
    
                // schreibe den Bytecode des Passwortes immer wieder, bis das Array keyBytes voll ist
    
                for (int i = 0; i < keyBytes.Length; i++)
    
                {
    
                    keyBytes[i] = StringToByteArray(keyFile)[Zeichen];
    
    
                    Zeichen++;
    
    
                    if (Zeichen == Laenge)
    
                    {
    
                        Zeichen = 0;
    
                    }
    
                }
    
    
                // Bild mit Vernam-Algorithmus verschlüsseln (XOR)
    
                byte[] encryptedBytes = new byte[originalBytes.Length];
    
                Vernam(originalBytes, keyBytes, ref encryptedBytes);
    
    
                // Speichern des verschlüsselten Bildes
    
                using (FileStream fs = new FileStream("TestBild_verschlüsselt.jpg", FileMode.Create))
    
                {
    
                    fs.Write(encryptedBytes, 0, encryptedBytes.Length);
    
                }
    
            }
    
    
            private static Image DecryptImage(string encryptedFile, string keyFile)
    
            {
    
                // Entschlüsselung des Bildes
    
    
                int Laenge = keyFile.Length;
    
                int Zeichen = 0;
    
    
                // Einlesen der verschlüsselten Bytes:
    
                byte[] encryptedBytes;
    
                using (FileStream fs = new FileStream(encryptedFile, FileMode.Open))
    
                {
    
                    encryptedBytes = new byte[fs.Length];
    
                    fs.Read(encryptedBytes, 0, (int)fs.Length);
    
                }
    
    
                // Array für Schlüssel-Bytes erzeugen - Länge genau wie die verschlüsselten Bytes
    
                byte[] keyBytes = new byte[encryptedBytes.Length];
    
    
                // schreibe den Bytecode des Passwortes immer wieder, bis das Array keyBytes voll ist
    
                for (int i = 0; i < keyBytes.Length; i++)
    
                {
    
                    keyBytes[i] = StringToByteArray(keyFile)[Zeichen];
    
    
                    Zeichen++;
    
    
                    if (Zeichen == Laenge)
    
                    {
    
                        Zeichen = 0;
    
                    }
    
                }
    
    
                // Entschlüsseln:
    
                byte[] originalBytes = new byte[encryptedBytes.Length];
    
                Vernam(encryptedBytes, keyBytes, ref originalBytes);
    
    
                // Image aus dem Byte-Array erzeugen:
    
                ImageConverter ic = new ImageConverter();
    
                return ic.ConvertFrom(originalBytes) as Image;
    
            }
    
    
            private static void Vernam(byte[] inBytes, byte[] keyBytes, ref byte[] outBytes)
    
            {
    
                // Prüfen der Argumente:
    
                if ((inBytes.Length != keyBytes.Length) || (keyBytes.Length != outBytes.Length)) throw new ArgumentException("Ungleiche Länge");
    
    
                // XOR:
    
                for (int i = 0; i < inBytes.Length; i++)
    
                {
    
                    outBytes[i] = (byte)(inBytes[i] ^ keyBytes[i]);
    
                }
    
            }
    
    
            private static byte[] StringToByteArray(string str)
    
            {
    
                // diese Methode Konvertiert einen String in Bytes
    
    
                System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    
                return enc.GetBytes(str);
    
            }
    
    
        }
    
    }
    
    

  8. Hallo zusammen!

    Ich möchte mit einer C#-Anwendung Bilder Ver- und Entschlüsseln.

    Nach einiger Recherche bin ich auf den Vernam-Algorithmus aufmerksam gewurden: Schnelles verschlüsseln von Bilder etc - Entwickler-Forum

    Das funktioniert auch soweit ganz gut, nur habe ich ein Problem bei der Anpassung. Ich möchte als Schlüssel keine Zufallsdaten, sondern einen festen String.

    Statt der Schlüssel.dat übergebe ich also den String

    [B]EncryptImage(originalImage, "TestBild_verschlüsselt.jpg", "Passwort");[/B]
    Folgendes kommentiere ich aus:
    
    // Random rnd = new Random();
    
    // rnd.NextBytes(keyBytes);
    
    
    // Schlüssel speichern:
    
    // using (FileStream fs = new FileStream(keyFile, FileMode.Create))
    
    // {
    
    // fs.Write(keyBytes, 0, keyBytes.Length);
    
    // }
    
    

    Doch wie erzeuge ich nun meinen Byte-Schlüssel aus dem Passwort?

    Es wurde ja geschrieben, dass die Bytes des Schlüssels gleich denen des Passworts sein müssen. Ich muss also das Passwort solange verlängern bis die Byteanzahl stimmt?

    Wie mache ich das?

    Kann mir bitte jemand helfen?

    Danke schonmal, Lukas :)

  9. Ich habe inzwischen selbst noch eine Lösung gefunden:

    
    OleDbConnection objOleDbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Sample.mdb; Mode=12");
    
    objOleDbConnection.Open();
    
    OleDbCommand objOleDbCommand = objOleDbConnection.CreateCommand();
    
    objOleDbCommand.CommandText = "ALTER DATABASE PASSWORD [newpw] []";
    
    objOleDbCommand.ExecuteNonQuery();
    
    objOleDbConnection.Close();

    Quelle: ALTER USER or DATABASE Statement (Microsoft Access SQL) [Access 2007 Developer Reference]

  10. Hallo zusammen,

    ich würde gern aus meinem C# Programm heraus das Passwort einer Access-Datenbank ändern.

    Bei MySQL z.B. gibt es ja ein Statement, was genau dies kann.

    UPDATE user SET Password="XXX" WHERE user='root';

    Für Access habe ich bei Google jedoch nichts passendes gefunden.

    Kennt sich da jemand aus?

    Verwende das Access 2007 Dateiformat accdb und eine OleDB-Verbindung.

    Vielen Dank schonmal im voraus!

    Luk

  11. Hey zusammen.

    Ich habe mal meinen Ausbilde zu Hilfe geholt.

    Durch dieverses Partitionieren und MBR wiederherstellen, und die Fehlerkorektur von der Vista Recovery CD bootet er jetzt von der neuen Platte.

    Jedoch war das Dateisystem zum Zeitpunkt des Images ziemlich beschädigt.

    (Deswegen auch der CHKDSK Fehler auf der neuen Platte)

    Wie dem auch sei, das Dateisystem lässt sich mit CHKDSK nicht reparieren.

    In der Ereignisanzeige gibts diverse Fehlermeldungen von ntfs...

    Kennt jemand ein anderes gutes Tool um NTFS zu reparieren?

    Ich google jetzt mal ^^

    Gruß, Luk

  12. @allesweg:

    Also, ich habe die LiveCD von meiner Firma gebootet.

    BartPE mit ein paar DiagnoseTools.

    Der WD Test gibt zwar bei SMART keine Fehler aus aber der Quicktest bricht schon nach wenigen Sekunden ab und kann in einem Berech nicht lesen...

    @Connor1980: Da die Samsung-Platte ist ja komplett neu gewesen, d.h. sie hatte noch keinen MBR und deswegen wurde dieser neu erstellt... Oder nich?

    Ob sie bootfähig ist prüfe ich dann nochmal...ich kopiere das Image grade neu...Eine Vista CD ist nicht vorhanden...

    Ich habe von verschiedenen Befehlen gelesen.

    fdisk /mbr

    fixboot

    fixmbr

    bootcfg /rebuild

    Doch meine PE-CD ist WinXP basierend und da habe ich keinen dieser Befehle zur Verfügung...

    Kann mir jemand vllt eine Live CD (.iso) schicken mit der ich den MBR neu erstellen kann?

  13. Hey zusammen,

    habe ein "kleines" Problem beim Rechner eines Freundes:

    Weiß jetzt nicht genau ob er 32 oder 64 Bit Vista hat...

    Vermute 64 Bit, weil er 4GB RAM hat und auch einen recht neuen PC mit einem Quad-Core. ;)

    Der PC bootete ganz normal und lief anfang (etwas langsam).

    Sobald man aber einen schreibenden Zugriff macht (und wenn es nur der Systemstart im msconfig ist den ich verändere) hängt sich der PC auf und es geht nix mehr -> Reset.

    Vermutung: Festplatte. (Western Digital)

    Reparaturversuche mit PE-CD:

    - CHKDSK /F /R: Abgebrochen in Phase 2 (oder 3 ?) mit dem Fehler: Ein nicht spezifizierbarer Fehler is aufgetreten.

    - PartitionMagic: kritischer Fehler! (4440 oder so)

    Wir haben eine neue Platte gekauft (SAMSUNG) und ich habe die alten Partitionen gesichert (Drive Snapshot):

    Partition 1: Recovery (unsichtbar)

    Partition 2: System

    Die neue HDD habe ich formatiert (nur eine Partition) und habe die alte System-Partition auf der neuen HDD wieder hergestellt und auf Primär und Aktiv gesetzt. Die Recovery-Partition brauche ich ja nicht zwingend, da der MBR ja neu geschrieben wurde, oder?

    Jetzt kann der PC nicht booten: Nur der blinkende Cursor in der Pre-Boot-Phase.

    Stutzig macht mich nur: CHKDSK und PartitionMagic bringen die selben Fehler...trotz neuer Platte. Ist da vielleicht doch was mit dem SATA Controller bzw dem Board?

    Gerade ist mir noch die boot.ini eingefallen...

    Ab Vista wurde diese ja durch BCD (Boot Configuration Data) ersetzt.

    Kann das sein dass in dem BCD Storage ein Verweis auf die damals 2.Partition steht, die jetzt ja nicht mehr vorhanden ist, da ich nur noch eine habe?

    Habe mal nachgelesen: Mit bcdedit.exe kann man diesen BCD Storage bearbeiten...

    Weiß jemand eine Lösung?

    Wäre echt dankbar für eure Hilfe!

    Gruß, Luk

  14. Hey,

    danke für deine Antwort, würde jedoch gerne bei KnowledgeTree bleiben...

    Es muss doch einen Grund für diesen Fehler geben?

    Die Registrierung im KnowledgeTree Forum ist etwas doof.

    Ausdrucken der Registrierungsmail und unterschreiben, dann mit der Post senden.

    Deswegen suche ich hier nach Hilfe...

    Luk

  15. Hey zusammen!

    Ich habe noch ein kleines Problem mit KnowledgeTree...

    Wenn ich die Such-Funktion verwende und nach irgendeinem Schlagwort suche, dann dauert es ca 30sek und Zend antwortet mit

    Service Temporarily Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Was läuft da schief?

    Ich habe die Version: 3.7.0.2 (Community Edition).

    Gruß, Luk!

  16. Hat sich schon erledigt.

    Wollte nur nicht 2 Webserver laufen haben und dann einen über 8080 ansprechen oder so...

    Ich habe jetzt einfach alles vom XAMPP Webserver auf den Zend verschoben und lassen den XAMPP aus.

    Danke nochmal für eure Hilfe!

    Thema kann also geschlossen werden.

    Gruß Luk

  17. Hey das KnowledgeTree finde ich SUPER!

    Vielen Dank für deinen Tipp!

    Nur noch einwas: Ich habe bisher XAMPP installiert, aber KnowledgeTree wollte unbedingt den Zend Server haben.

    Kann man das KnowledgeTree Verzeichnis nach der Installation noch nach XAMPP verschieben?

    Gruß, Luk

  18. Hey, danke für den Tip!

    Ich habe KnowledgeTree und Zend Server CE mal installiert.

    Das Problem liegt nur bei der KnowledgeTree-Installation.

    Wie ist das Zend MySQL Login für root?

    EDIT: OK ich habe es hinbekommen: Der MySQL Service war down... Sorry^^

  19. Technisch muss die ganze Sache auch nicht so überzogen sein.

    Ist nur für den Privatgebrauch. Ich will lediglich ein paar Dokumente strukturiert ablegen und später leicht über eine Stichwortsuche wiederfinden. Eigentich muss es nicht mal ein Multi-User-System sein...

    Ich habe mir bereits angeschaut:

    Ja das wars soweit erstmal.

    Am liebsten wäre mir eine Anwendung wo ich den ganzen Ordnerbaum am Rand sehen kann (wie im Active Directory).

  20. Hey ich hab nochmal eine Frage...

    Meine DB-Verbindung habe ich bis jetzt so realisiert:

    Form1.cs:

    
    OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ZAM.mdb");
    
    
    Nur jetzt habe ich gesehen, dass es auch einen "Assistenten zum Konfigurieren von Datenquellen" gibt... D.h. ich habe meine Access DB jetzt im Projektmappenexplorer integriert. Meine Abfragen habe ich mit dem Connection String immer so gestaltet:
    OleDbCommand Command = new OleDbCommand(Query, Connection);

    Doch wenn ich jetzt Variable Connection lösche, dann ist dieser Codeteil natürlich hinfällig.

    Doch wie mache ich diese Abfrage nun ohne die Variable, nur mit der Datenquelle? Habe bei Google nichts für mich passendes für mich gefunden.

    Danke schonmal für eure Hilfe!

    Luk

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...