Binär Datei verschlüsseln



  • Hi,

    ich wollte mal Fragen ob es eine einfache Möglichkeit gibt in C++ eine binär Datei zu verschlüsseln und entschlüsseln.

    Und zwar handelt es sich um eine Linux binär Datei. Programmiert wird auch unter Linux.

    Falls es Beispiele gibt würde ich mich sehr freuen.

    test0r



  • Willst du eine normale Datei binary schreiben ?

    die logik würde so aussehen :

    Datei einlesen zb in einen string oder ähnliches
    Datei Speichern selbe file als binary .. hab zwar ka wegen linux abba fstream gibt es zb



  • Nein. Ich möchte nicht eine Binär Datei schreiben.

    Ich habe bereits eine Binär Datei also ein Ausführbares Programm.
    Dieses möchte mit meinem C++ Programm verschlüsseln können und auch wieder entschlüsseln können.

    test0r



  • siehe Crypto++, libgcrypt etc.



  • Vielen Dank für die Antwort.

    Allerdings habe ich da das Problem das ich es für einen PowerPC kompilieren muss und leider keine Libs hinzufügen kann.
    Deßhalb würde ich das gerne über eine Header Datei lösen die ich einbinden kann.

    test0r



  • test0r schrieb:

    Nein. Ich möchte nicht eine Binär Datei schreiben.

    Ich habe bereits eine Binär Datei also ein Ausführbares Programm.
    Dieses möchte mit meinem C++ Programm verschlüsseln können und auch wieder entschlüsseln können.

    und wo willst du die verschlüsselte datei speichern

    verschlüsseln kannst du auch mit XOR



  • Is doch easy:
    Datei einlesen -> verschlüsseln -> Datei schreiben

    in etwa könnte das so aussehen:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int encrypten_oder_decrypten = 0;
    char wert_zum_encrypten = 0;
    char temp[10];
    
    fstream in_file;
    fstream out_file;
    
    string filename_input_file;
    string filename_output_file;
    string endung = ".is.encrypted";
    
    void ClearCin()
    {
        cin.seekg(0,ios::end);
        cin.clear();
    }
    
    void EncryptFile(bool encrypt)
    {
        if(encrypt == true)
        {
            in_file.open(filename_input_file.c_str(),ios::binary|ios::in);
    
            filename_output_file = filename_input_file + endung;
    
            out_file.open(filename_output_file.c_str(),ios::binary|ios::out);
    
            while(in_file.readsome((char*)temp,1)){
                temp[0] += wert_zum_encrypten;
                out_file<<temp[0];
            }
    
            in_file.close();
            out_file.close();
        }
        else
        {
            in_file.open(filename_input_file.c_str(),ios::binary|ios::in);
            filename_output_file = filename_input_file;
            filename_output_file.replace(filename_output_file.size()-endung.size(),filename_output_file.size(),"");
            out_file.open(filename_output_file.c_str(),ios::binary|ios::out);
    
            while(in_file.readsome((char*)temp,1)){
                temp[0] -= wert_zum_encrypten;
                out_file<<temp[0];
            }
    
            in_file.close();
            out_file.close();
        }
        return;
    }
    
    //Main Function
    int main()
    {
        cout << "Ultra Encrypter Version 0.***" << endl;
        cout << "Wollen Sie encrypten(1) oder decrypten(2)?" << endl;
        cin >> encrypten_oder_decrypten;
    
        if(encrypten_oder_decrypten == 1)
        {
            cout << "Es wird jetzt encrypted" << endl;
            cout << "Geben Sie den encrypt-Wert ein:" << endl;
    
            cin >> wert_zum_encrypten;
    
            ClearCin();
            cout << "Geben Sie den Dateinamen ein:" << endl;
            getline(cin,filename_input_file);
    
            EncryptFile(true);
        }
        else if(encrypten_oder_decrypten == 2)
        {
            cout << "Es wird jetzt decrypted" << endl;
            cout << "Geben Sie den decrypt-Wert ein:" << endl;
    
            cin >> wert_zum_encrypten;
    
            ClearCin();
            cout << "Geben Sie den Dateinamen ein:" << endl;
            getline(cin,filename_input_file);
    
            EncryptFile(false);
        }
        return 0;
    }
    

    getestet unter winxp && Code::Blocks

    Viel Spaß



  • Mit euren Methoden kann er sich die Verschlüsselung ja gleich sparen.

    @test0r
    Eine Header-Only-Library kenn ich nicht. Aber Implementierungen von richtigen Verschlüsselungs-Algorithmen, wie AES, sollten sich ja schnell finden lassen.



  • na schrieb:

    verschlüsseln kannst du auch mit XOR

    du kannst dir auch ein loch ins knie bohren.



  • loch schrieb:

    na schrieb:

    verschlüsseln kannst du auch mit XOR

    du kannst dir auch ein loch ins knie bohren.

    ich wette ich kann was mit xor verschlüsseln und das bekommt hier keiner entschlüsselt, auch wenn passwort.length != text.lenght.



  • rüdiger schrieb:

    Mit euren Methoden kann er sich die Verschlüsselung ja gleich sparen.

    das war nur ein SEHR BILLIGES Beispiel wie man eine Verschlüsselung ansatzweise programmieren kann, damit er versteht wie es funktioniert und ggf.
    kann er sich ja selber was an Verschlüsselung ausdenken

    🤡 :-S

    ps: nich bös gemeint

    mfg ich



  • únHelferlein schrieb:

    kann er sich ja selber was an Verschlüsselung ausdenken

    lieber nicht. das ist schon bei anderen sehr schiefgegangen...



  • ^^ ne.. natuerlich nicht.. aber wenn wir die verschluesselungs/entschluesselungs exe haben


Anmelden zum Antworten