[.NET] Streamwriter überschreibt immer die datei/Crypt Funktion

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von JoevanniD7, 12. März 2009 .

Schlagworte:
  1. 12. März 2009
    Streamwriter überschreibt immer die datei/Crypt Funktion

    HI! Ich benutze VB. NET! Ich habe einen Code der funktioniert, aber er überschreibt immer die Textdatei in die ich speicher! Wie kann ich das verhindern?

    2. Brauche ich eine Verschlüsselung dieser Textdatei! Es gibt natürlich hilfreiche Tutorials mit ner Menge Code und ein paar Beispielen! Aber ich versteh nicht wie ich das jetzt bei meinem Projekt anwenden kann!

    Edit Code vergessen...

    Code:
    Dim sw As New IO.StreamWriter("Beispielpfad")
     '^^^^Saves into the file directory ^^
    
     userentry = ""
     passentry = ""
    
     userentry = txtREGName.Text
     passentry = txtREGPass.Text
    
     input = MsgBox("Stimmen diese Angaben?" & vbNewLine & vbNewLine & "Username: " & userentry & vbNewLine & "Password: " & passentry, MsgBoxStyle.YesNo)
    
     If input = 6 Then 'If user presses "YES"
    
     sw.WriteLine(userentry) 'Puts the username on the first line.
    
     sw.WriteLine(passentry) 'Puts the password under the username.
    
     sw.Close() 'Closes the file to stop crashes.
     txtREGName.Text = ""
     txtREGPass.Text = ""
     Else 'If user presses "NO"
     txtREGName.Text = ""
     txtREGPass.Text = ""
     End If
     
  2. 13. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Code:
    Dim sw As New IO.StreamWriter("Beispielpfad", True)
    
    Du kannst beim Instanzieren des StreamWriters ein Parameter mitgeben der "Append" heißt. Setz ihn auf True (siehe oben), dann werden die Daten an deine Datei angehängt.

    http://msdn.microsoft.com/de-de/library/system.io.streamwriter.streamwriter.aspx

    Dürfte dein erstes Problem lösen
    Gruß
    meckes
     
  3. 13. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Du kannst das Beispiel aus diesem Tutorial eigentlich fast Eins-zu-Eins übernehmen, nur den Dateinamen anpassen (und das Passwort nicht im Programm speichern natürlich): VB.NET-Tipp 0010: Eine Datei verschlüsseln - ActiveVB
     
  4. 14. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Danke schonmal an Meckes! Ich hab euch beide schon bewertet! Ich schaue mir jetz den Code an und dann werde ich es mal versuchen!

    Edit: Ich kann nicht genau erkennen wie ich das auslösen kann per button! Magst du mir das vllt auch noch sagen?
     
  5. 14. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Das was im Beispiel in "Sub Main()" steht kannst du in das OnClick event deines Buttons packen. Du musst aber aufpassen, denn im Beispiel ist es ein Consolen-Programm. D.h. Du musst den code noch anpassen

    Gruß
    meckes
     
  6. 15. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion


    Ich schaffs einfach nicht! Ich krieg den nicht zum laufen! Gibt es nicht n TuT oder so? Weil ich ja dann den Code den ich jetzt hab damit verbinden muss! Oder ersetzt der Code meinen jetzigen Komplett?
     
  7. 15. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Wenn du sagtst, wobei du nicht weiterkommst kann man dir vll Helfen . Aber so wirst du wohl immer nur auf Google verwiesen werden

    Code:
     
    ' Dieser Quellcode stammt von http://www.activevb.de
    ' und kann frei verwendet werden. Für eventuelle Schäden
    ' wird nicht gehaftet.
    
    ' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
    ' Ansonsten viel Spaß und Erfolg mit diesem Source!
    
    Imports System.Security.Cryptography
    Imports System.IO
    
    Private Function saveMyCryptedFile(ByVal myPw As String, ByVal myFilePath As String, ByVal myLineToWrite) As Boolean
     ' Die Klasse, die den verwendeten Verschlüsselungs-
     ' algorithmus darstellt.
     Dim DES As New DESCryptoServiceProvider()
     With DES
     ' Das Passwort muss als Bytearray gesetzt werden.
     .Key = System.Text.Encoding.ASCII.GetBytes(myPW)
     .IV = System.Text.Encoding.ASCII.GetBytes("12345678")
     End With
    
     ' Der Stream, der in die Datei schreibt.
     Dim fstream As New FileStream(myFilePath, _
     FileMode.Create)
     ' Der CryptoStream, der die Verschlüsselung
     ' übernimmt.
     Dim cstream As New CryptoStream(fstream, _
     DES.CreateEncryptor(), _
     CryptoStreamMode.Write)
     ' Der CryptoStream bietet nur die Möglichkeit
     ' an Bytes zu schreiben. Deswegen machen wir uns 
     ' das Ganze etwas leichter.
     Dim swriter As New StreamWriter(cstream)
    
     ' Text schreiben und Stream schließen
     swriter.Write(myLineToWrite)
     swriter.Close()
    
     End Function
    
    Private Function readMyCryptedFile(ByVal myPW As String, ByVal myFilePath As String) As String
     Dim fstream As FileStream
     Dim cstream As CryptoStream
     Dim myResult As String = ""
     
     Dim DES As New DESCryptoServiceProvider()
     With DES
     ' Das Passwort muss als Bytearray gesetzt werden.
     .Key = System.Text.Encoding.ASCII.GetBytes(myPW)
     .IV = System.Text.Encoding.ASCII.GetBytes("12345678")
     End With
     ' -----------------------------------
     ' ------ Text wieder auslesen -------
     ' -----------------------------------
     fstream = New FileStream(myFilePath, FileMode.Open)
     cstream = New CryptoStream(fstream, _
     DES.CreateDecryptor, _
     CryptoStreamMode.Read)
     Dim sreader As StreamReader = New StreamReader(cstream)
    
     myResult = sreader.ReadLine()
    
     sreader.Close()
    
     readMyCryptedFile = myResult
    End Function
    
    So, da mir langweilig war hab ich mal aus dem o.g. beispiel 2 funktionen gebastelt. eine zum schreiben in die datei, die andere zum lesen (allerdings immer nur eine zeile, den rest kannst dann selbst machen )
    Ich habs net getestet, hab grad kein studio zur hand *g* Aber die Funktionen dürften selbsterklärend sein ...


    EDIT: // oh du hast in der Zwischenzeit deine Frage geändert *g*
    also du könntest entweder deinen Code anpassen oder komplett den anderen nehmen. Allerdings willst du ja keine Konsolenanwendung...

    Die Funktionen die ich jetzt gemacht hab kannst du verwenden. Allerdings wie gesagt halt nur für eine Zeile wenn du sie so lässt.


    Gruß
    meckes
     
  8. 15. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Also ich mach mich jetz an die Reihen der Rest ist einwandfrei! :]

    Ich weiss ich bin der Obernoob, aber was bedeutet :Alle paramter müssen explizit typisert werden! Bei Google gibts da nicht wirklich hilfreiche Ergebnisse aber ich such jetz noch n bisschen...
     
  9. 15. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    ohh huch

    das bedeutet dass in der ersten funktion ein parameter ohne typ angegeben ist. Die zeile müsste so aussehen:

    Code:
    Private Function saveMyCryptedFile(ByVal myPw As String, ByVal myFilePath As String, ByVal myLineToWrite As String) As Boolean
    
     
  10. 25. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Hm... Das geht nicht! es kommt jetzt, wenn ich den Knopf drücke gar nichts mehr! Liegt das jetzt an mir? Ausserdem akzeptiert er die Stream Befehle nicht! Also fstream z.B. muss deklariert werden! Als Vorschläge gibts "Stream" "FileStream" und "IO Stream". Das geht alles nicht!
     
  11. 26. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    zeig doch nochmal deinen code so wie er jetzt ist.
     
  12. 26. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Naja... ich hab einfach zum Testen ein leeres Projekt genommen! Weil ich diese Registrationsfunktion separat machen möchte. Aber ich poste dir ma die Version bei der er keine Fehler anzeigt!


    Code:
    Imports System.IO
    Imports System.Security.Cryptography
    
    Public Class Form1
    
     Dim input As Integer 'Temp variable to hold the responce from the message box.
     Dim userentry As String
     Dim passentry As String 'String becausepasswords can be numbers and words.
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     End Sub
     Private Function saveMyCryptedFile(ByVal myPw As String, ByVal myFilePath As String, ByVal myLineToWrite As String) As Boolean
    
    
     ' Die Klasse, die den verwendeten Verschlüsselungs-
     ' algorithmus darstellt.
     Dim DES As New DESCryptoServiceProvider()
     With DES
     ' Das Passwort muss als Bytearray gesetzt werden.
     .Key = System.Text.Encoding.ASCII.GetBytes(myPw)
     .IV = System.Text.Encoding.ASCII.GetBytes("12345678")
     End With
    
     ' Der Stream, der in die Datei schreibt.
     Dim fstream As New FileStream(myFilePath, _
     FileMode.Create)
     ' Der CryptoStream, der die Verschlüsselung
     ' übernimmt.
     Dim cstream As New CryptoStream(fstream, _
     DES.CreateEncryptor(), _
     CryptoStreamMode.Write)
     ' Der CryptoStream bietet nur die Möglichkeit
     ' an Bytes zu schreiben. Deswegen machen wir uns 
     ' das Ganze etwas leichter.
     Dim swriter As New StreamWriter(cstream)
    
     ' Text schreiben und Stream schließen
     swriter.Write(myLineToWrite)
     swriter.Close()
    
     End Function
    
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     End Sub
     Private Function readMyCryptedFile(ByVal myPW As String, ByVal myFilePath As String) As String
     Dim fstream As FileStream
     Dim cstream As CryptoStream
     Dim myResult As String = ""
    
     Dim DES As New DESCryptoServiceProvider()
     With DES
     ' Das Passwort muss als Bytearray gesetzt werden.
     .Key = System.Text.Encoding.ASCII.GetBytes(myPW)
     .IV = System.Text.Encoding.ASCII.GetBytes("12345678")
     End With
     ' -----------------------------------
     ' ------ Text wieder auslesen -------
     ' -----------------------------------
     fstream = New FileStream(myFilePath, FileMode.Open)
     cstream = New CryptoStream(fstream, _
     DES.CreateDecryptor, _
     CryptoStreamMode.Read)
     Dim sreader As StreamReader = New StreamReader(cstream)
    
     myResult = sreader.ReadLine()
    
     sreader.Close()
    
     readMyCryptedFile = myResult
     End Function
    End Class
    
    Die Pfade und so sind jetz noch nicht gesetzt! BTW : Wo mach ich das?
     
  13. 26. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Der Code ist zwar nicht der sauberste (Immer schön Stream/-reader/-writer closen)

    Auf dem ersten Blick sieht er aber OK aus!
     
  14. 27. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Meine Frage ist nur, wie ich das ganze per Knopfdruck speichern/öffnen kann! Ausserdem ist die datei momentan nicht verschlüsselt. Also ich kann einfach in den Ordner gehen und sie öffnen...
     
  15. 27. März 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Machste in nem Event von ner Schaltfläche ein
    Code:
    Dim content As String = readMyCryptedFile("passwort","C:\crypt.ed") 
    rein.

    Dadurch wird der Inhalt der Datei crypt.ed entschlüselt mit dem Passwort "passwort" im Klartext in die Variable content geschrieben.

    Soweit klar?
     
  16. 6. April 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Wofür benötige ich die Datei crypt.ed? weil ich ja in eine txt schreibe!
     
  17. 6. April 2009
    AW: Streamwriter überschreibt immer die datei/Crypt Funktion

    Das ist nur ein beispiel! Da wo jetzt "C:\crypt.ed" steht fügst du den Pfad zu deiner Textdatei ein...
     
  18. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.