NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Programmierung > C / C++

C / C++ Hier findet ihr Code-Schnipsel zu C & C++

Antwort
 
Themen-Optionen Ansicht
Alt 18.05.2009, 14:19   #1
Verschlüsselungsproggi
Solstice Solstice ist offline 18.05.2009, 14:19

Ein ganz einfaches Verschlüsselungsproggi, written by me da ich mal bock zu hatte. (Konsolenproggi)

Man kann auch ganz einfach wieder entschlüsseln und es funzt so weit ich weiß einwandfrei...

Verschlüsselung mit Passwort bis 127 Zeichen sowie deren Entschlüsselung.
klein fein und ich finds toll.

Funktioniert bis Dato nur auf Windoof 32, nen andern Compiler hab ich grad nich...

Code:
Code:
#include <iostream>
#include <math.h>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <io.h> 
#include <fstream>
#include <sys/types.h>
#include <sys/stat.h>
#include <fstream>


using namespace std;

void encode(char *stream,char vrs_file[128]);
void decode(char *stream,char vrs_file[128]);
bool handle(char src_file[128],char tgt_file[128],char vrs_file[128]);

void main ()
{
char src_file[128];
char tgt_file[128];
char vrs_file[128];
unsigned long i;

while (1)
{
    src_file[128] = NULL;
    tgt_file[128] = NULL;
    vrs_file[128] = NULL;
i = 0;
system("cls");

cout << "Quelldatei angeben (mit Pfad):  " << flush << endl;
cin.getline(src_file,127);

if (!strlen(src_file))
strcpy_s(src_file,"D:/MTD.txt");

cout << "Zieldatei angeben (mit Pfad(Datei wird erstellt falls nicht vorhanden))" << endl;
cout << "Format: *Laufwerk*:/*Pfad*" << endl;
cout << "Falls Quelldatei ueberschrieben werden soll, nichts eingeben:" << endl; 
cin.getline(tgt_file,127);
if (!strlen(tgt_file))
strcpy_s(tgt_file,src_file);

cout << "Verschluesselungspasswort angeben (max. 100 Zeichen): " << endl;
cin.getline(vrs_file,127);
if (!strlen(vrs_file))
strcpy_s(vrs_file,"1234567890");

cout << endl;
if (handle(src_file,tgt_file,vrs_file)) {
cout << "Datei erfolgreich verarbeitet und gespeichert. " << endl;
cout << "Press any key to continue " << endl;
} else
cout << "Datei nicht gefunden. " <<     endl;
fgetc(stdin);

} // Ende While Schleife


} // Ende Main

void encode(char *stream,char vrs_file[128])
{   int vrsint = 0;
    for (unsigned int i = 0;i < strlen(vrs_file);i++)
    {
    vrsint += vrs_file[i] - 47;
    }

    vrsint += (vrsint/strlen(vrs_file))+vrsint+1;
    vrsint = vrsint%101;
    for (unsigned int i = 0;i<strlen(stream);i++)
    {
    stream[i] = stream[i]-vrsint+i;
    }

} 


void decode(char *stream,char vrs_file[128])
{
    int vrsint = 0;
    for (unsigned int i = 0;i < strlen(vrs_file);i++)
    {
    vrsint += vrs_file[i] - 47;
    }

    vrsint += (vrsint/strlen(vrs_file))+vrsint+1;
    vrsint = vrsint%101;
    for (unsigned int i = 0;i<strlen(stream);i++)
    {
    stream[i] = stream[i]+vrsint-i;
    }
} 

bool handle (char src_file[128],char tgt_file[128],char vrs_file[128])
{
fstream f;
fstream o;
char c;
String   cont = "";
unsigned long i = 0;
unsigned long e = 0;
char * content = NULL;
char * erg = NULL;

  // Textdatei zum Lesen öffnen.
f.open(src_file, ios::in | ios::binary);
if (f.fail())
return false;

while( f.read((char*)&c, sizeof(char)) )
cont += c;

f.close();
content = new char[cont.size()];
strcpy(content,cont.c_str());

cout << "Datei erfolgreich geoeffnet. " << endl;
cout << "Verschluesseln  'V' eingeben" << endl;
cout << "Entschluesseln: 'E' eingeben" << endl;

if (tolower(fgetc(stdin)) == 'e')
decode(content,vrs_file);
else
encode(content,vrs_file);



  // Textdatei zum Schreiben öffnen.
  o.open(tgt_file, ios::out | ios::binary);
  if (o.fail())
  return false;

  for(unsigned int i = 0; i < strlen(content); i++)
  {
    o.write((char*)&content[i], sizeof(char));
  }
  o.close();

return true;
}
Rückmeldungen sehr erwünscht...

Edit von Mir: Das Tool ist NICHT leistungsfähig, es hängt sich bereits bei 70 kB Dateigröße auf, vermute Buffer overflow.
Um jedoch kleine Textdateien (spasseshalber?) zu verschlüsseln, reicht es.

Angeh?ngte Dateien
Dateityp: zip Encoder.zip (5,7 KB, 8x aufgerufen)

__________________
Schmutziges Geschirr schimmelt nicht,
wenn man es einfriert


Ge?ndert von Solstice (26.05.2009 um 10:03 Uhr).

 
Benutzerbild von Solstice
Solstice
Moderator
Punkte: 71.264, Level: 100 Punkte: 71.264, Level: 100 Punkte: 71.264, Level: 100
Levelaufstieg: 0% Levelaufstieg: 0% Levelaufstieg: 0%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Auszeichnungen
Registriert seit: 10.04.2008
Alter: 36
Beitr?ge: 4.074
Abgegebene Danke: 200
Erhielt 1.331 Danke für 153 Beiträge
Downloads: 2
Uploads: 1
Nachrichten: 731
Hits: 18971
Mit Zitat antworten
Folgende 7 Benutzer sagen Danke zu Solstice für den nützlichen Beitrag:
$iMpLy (18.05.2009), Bluesteel (18.05.2009), Cerberus (18.05.2009), DoLo (18.05.2009), gotthummer (18.05.2009), psychodo (19.05.2009), Thunder™ (18.05.2009)
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS