Frage von Marek1304, 8

C# Filestream DAtei bleibt leer. Warum?

Im Moment programmiere ich in C# einen Passwortmanager. Dieser soll den Text einer RichTextbox, als Zwischenspeicher auf dem Rechner speichern, verschlüsselt natürlich. Jedoch bleibt die Datei leer Warum vllt weiß ja jemand Hilfe. Danke im Vorraus, Marek


Hier mal mein Quellcode

using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security.Cryptography;

namespace Passwortmanager
{
[Serializable()]
public partial class btnSave : Form
{
    public btnSave()
    {
        InitializeComponent();
    }

    //VAr
    int c = 0;
    string spath = Directory.GetCurrentDirectory();

    string SaveName;
    string sFile;
    private const string sKEY = "dfhgjkl657!§$()&)&&(FGHHJHJ";
    private const string sIV = "sdgjkfmg=/()18328";

    #region Einträge löschen
    //Einträge löschen
    private void button2_Click(object sender, EventArgs e)
    {
        txtaccount.Text = "";
        txthost.Text = "";
        txtpassword.Text = "";
    }
    #endregion
    #region Crypto
    private Rijndael CryptByKey (string sKey, string sIv)
     {
         Rijndael RJ = Rijndael.Create();
         RJ.Key = ASCIIEncoding.ASCII.GetBytes(PaddKey(sKey));
         RJ.IV = ASCIIEncoding.ASCII.GetBytes(PaddKey(sIv));
         RJ.Padding = PaddingMode.Zeros;
        return RJ;
     }

     private string PaddKey(string sKey)
     {
         if (sKey.Length % 2 == 0)
             return sKey.PadLeft(16, (char)(sKey.Length + 64));
         else
             return sKey.PadRight(16, (char)(90 - sKey.Length));
     }
    #endregion


    public bool BackUp(string path, string sKey, string sIv, string sName)
     {
         sFile = spath + sName +".savepass";
         spath = Directory.GetCurrentDirectory()+ "\\SaveState\\";
        if (!Directory.Exists(spath))
        {
            Directory.CreateDirectory(spath);
        }

        if (!File.Exists(sFile))
         {
             FileStream FS = null;
             CryptoStream CS = null;
             BinaryFormatter BF = null;

             try
             {
                 FS = new FileStream(sFile, FileMode.Create);
                 CS = new CryptoStream(FS, CryptByKey(sKey, sIv).CreateEncryptor(), CryptoStreamMode.Read);
                 BF = new BinaryFormatter();

                 BF.Serialize(CS, this);

                 FS.Flush();
                 CS.Flush();
                 CS.Close();
                 FS.Close();
                 return true;
             }
             catch (Exception)
             {
                 MessageBox.Show("Es ist ein Fehler beim Sichern aufgetreten!", "Fehler beim Sichern!", MessageBoxButtons.OK, MessageBoxIco
Antwort
von xGlumi, 5

Evt. weil du nirgendso schreibst??

Du rufst ja nie die .Write()-Methode auf.

MFG xGlumi

Kommentar von Marek1304 ,

habe es jetzt anders probiert.. schreibe die daten jetzt in eine Txt datei... sie ist aber noch unverschlüsselt.. wie kann ich txt dateien beim speichern verschlüsseln und beim lesen entschlüsseln?

Kommentar von xGlumi ,

naja du verschlüsselst den Text der hineinkommt. Nicht die .txt selbst ob und wie du den text encoden/decoden möchtest bleibt dir überlassen, ob ne einfache Verschlüsselung wie Base64 oder obs iwas anspruchsvolleres sein soll MFG xGlumi

Kommentar von Marek1304 ,

hab es jetzt etwas anders versucht hab aber ein anderes Problem vllt kann mir ja wer helfen...hab dazu auch eine neue Frage gestellt

https://www.gutefrage.net/frage/c-auf-daten-beim-start-der-anwendung-zugreifen?f...

danke im Vorraus!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten