Binärcode zu einer Datei konvertieren

Awsom

Ensign
Registriert
Apr. 2009
Beiträge
149
Guten Morgen,

liebe Forenbasler!

Gibt es einen Rechner welcher mir eine beliebig lange binärzahl in eine dezimale umwandeln kann? z.B. den binär code einer .mp3?

Und ist es mir anhand dieses Binärcodes möglich die Datei wiederherzustellen? Inkl. Dateiendung?

Meine Idee ist folgende.

Ich sende jemandem die Zahl 983456798213749032749862 er wandelt diese in das binärformat um und speichert sie irgendwie und erhält dann Datei aus welcher ich die Zahl errechnet habe.

Best regards.
 
WTF?? Was soll das bringen? Schick ihm doch einfach die Datei! Die Zahl, die du ihm schickst wird auch nicht kleiner sein, das der "Binärcode"
 
Mach absolut keinen Sinn. Mal angenommen du erstellst aus der .mp3 eine Zahl ist diese am PC immernoch als Binärcode gespeichert. :freak: Auf deiner Festplatte ist ja nicht die Zahl gespeichert sondern die 0101001011010... Wäre dann beides des gleiche. Nehm doch einfach nen 0815 zum verschlüsseln wenn du was geheim halten willst. :rolleyes:
 
Macht kein Sinn, denn ein Zeichen hat eine Größe von 8Bit, bzw. 16Bit. Schränkt man die Zeichensatz auf ein Zahlenbereich 0-9 ein, bleiben die restlichen 245 bzw. 65526 Zeichen ungenutzt. Die ungenutzten Zeichen könnten evtl. durch Komprimierung wieder ausgebügelt werden. Aber unkomplizierter wäre es, einfach die Binärdatei zu schicken.

EDIT: Wenn du eine Binärdatei im Text-Editor öffnest, siehst Du ja keine 0en und 1en, sondern eher so "komische" Zeichen. Hinter den Zeichen verstecken sich die Binärfolgen, die der Text-Editor versucht, in ein Zeichen umzuwandeln.
 
Zuletzt bearbeitet:
Wenn ich die Datei verschlüsseln will. Woher wird die Basis genommen? Ich dachte mir das ich die dezimalzahl mit RSA verschlüsseln könnte.

Wenn ich jetzt die Datei verschlüsseln würde müsste auch eine Zahl genommen werden und ein Verschlüsselungsverfahren drüber gebügelt werden. Woher kommt aber diese Zahl, und wieso wäre da mein vorgeschlagener Weg unsinnig?
 
Zuletzt bearbeitet:
eine datei ist im wesentlichen eine zahl, und zwar binär (also im stellenwertsystem mit basis 2) kodiert.

wenn man damit rumrechnen will, tut man das mit dieser binären darstellung.

Code:
int a = 5;
int b = 7;
int c  = a + b;
std::cout << c << std::endl;
in diesem einfachen beispiel werden die zahlen zwar im dezimalformat übergeben, aber das erste, was damit gemacht wird, ist sie ins binärformat umzurechnen. alle weiteren operationen (in diesem fall eine addition) geschehen mit dieser binären darstellung.

5 -> 101
7 -> 111

101 + 111 = 1100

1100 -> 12
 
Zuletzt bearbeitet:
sasdensas schrieb:
Macht kein Sinn, denn ein Zeichen hat eine Größe von 8Bit, bzw. 16Bit. Schränkt man die Zeichensatz auf ein Zahlenbereich 0-9 ein, bleiben die restlichen 245 bzw. 65526 Zeichen ungenutzt. Die ungenutzten Zeichen könnten evtl. durch Komprimierung wieder ausgebügelt werden. Aber unkomplizierter wäre es, einfach die Binärdatei zu schicken.

EDIT: Wenn du eine Binärdatei im Text-Editor öffnest, siehst Du ja keine 0en und 1en, sondern eher so "komische" Zeichen. Hinter den Zeichen verstecken sich die Binärfolgen, die der Text-Editor versucht, in ein Zeichen umzuwandeln.

Ich öffne die Datei xxx.mp3 in einem Hexeditor meiner Wahl und lasse mir den Binärcode anzeigen, dieser ist in 8bit unterteilt. Wenn ich alle unterteilungen entferne und mir dann diese womöglich 1^10*1000 (keine ahnung wieviel genau) lange Zahl in eine Dezimalform umwandeln lasse. Ist es mir möglich den ursprüngliches Code wieder anzeigen zu lassen solange ich weiß das die Datei in 8bits unterteilt war.
 
Mithilfe von Cryptool kannste Dir mal anschauen, wie Verschlüsselungen aussehen.

Hier ein RSA-Beispiel: Klartext: "Dies ist eine Datei" wird zu -> 54 83 68 23 62 16 FD AF 14 24 74 D4 78 B2 A2 0D 96 A5 5B C8 5F E2 3B 1C F4 B8 E5 09 13 A1 0F E6 4A 63 3E 29
18 43 27 40 F6 03 DC 2F 81 FE 4F 0B 76 36 FD 44 65 A4 4D CF 83 D7 AF 09 D6 06 AA 0E

Es werden also Hexadezimalzahlen erzeugt, die sehr einfach in das Binärformat umgewandelt werden können
 
RAG4 schrieb:
Ist es mir möglich den ursprüngliches Code wieder anzeigen zu lassen solange ich weiß das die Datei in 8bits unterteilt war.

nochmal: ja. bei binär -> dezimal ändert sich nicht die zahl, sondern nur die darstellung. wenn man also wieder in binär umwandelt, hat man wieder die ursprüngliche darstellung derselben zahl.

wie man die zahl kodiert (unär, binär, dezimal, zur basis 1231) macht für die ergebnisse von berechnungen keinen unterschied, da diese ja nur von der zahl selbst abhängen. natürlich kann der aufwand dazu je nach kodierung mehr oder weniger sein. für einen computer ist die binärdarstellung am besten geeignet, die deshalb auch intern verwendet wird.
 
maxwell-cs schrieb:
eine datei ist im wesentlichen eine zahl, und zwar binär (also im stellenwertsystem mit basis 2) kodiert.

wenn man damit rumrechnen will, tut man das mit dieser binären darstellung.

Code:
int a = 5;
int b = 7;
int c  = a + b;
std::cout << c << std::endl;
in diesem einfachen beispiel werden die zahlen zwar im dezimalformat übergeben, aber das erste, was damit gemacht wird, ist sie ins binärformat umzurechnen. alle weiteren operationen (in diesem fall eine addition) geschehen mit dieser binären darstellung.

5 -> 101
7 -> 111

101 + 111 = 1100

1100 -> 12

Wenn ich den Code jetzt kompillieren würde. Und mir die Datei verschlüsseln lassen will ist es sinnvoll dafür den Wert des Binärcodes zu nehmen? Wenn nicht mit welchem Wert wird sonst eine Datei normalerweise verschlüsselt?

Wenn ich lediglich die Zahl 16 verschlüsseln will. Dann ist absolut kein Problem das sie einen festen Wert hat mit welchem sich rechnen lässt.

Wie mache ich das mit Dateien? Ich habe daran gedacht die Datei anhand ihres Binärwertes zu verschlüsseln! Wenn dies nicht auf diesem Weg geschieht wird dann vlt jedes einzelne Zeichen der Datei verschlüsselt?
 
Zuletzt bearbeitet:
dein posting ist nicht wirklich verständlich. was soll sein, wenn du das kompilierst?

ansonsten: man könnte die ganze datei (also die nullen und einsen, die du da im hexeditor siehst) als zahl auffassen und so in einen verschlüsselungsalgorithmus packen.

da die so entstandene zahl aber riesig werden kann (millionen oder milliarden von stellen) und berechnungen mit solchen zahlen sehr lange dauern würden, kann man die datei einfach in viele kleine teile zerhacken, und diese getrennt verschlüsseln.

als einfaches beispiel in der wikipedia: http://de.wikipedia.org/wiki/RSA-Kryptosystem#Vollst.C3.A4ndiges_Beispiel
 
Zuletzt bearbeitet:
Das Code Posting war eher ein simples Beispiel wie Verschlüsselung funktioniert.
Der Dateikonvertierungsprozeß ist deutlich komplizierter. Ein Verschlüsselungsprogramm ist kein 3 Zeiler.
Der Punkt ist nur das der Basiswert (a) mit dem Verschlüsselungskennwort (in dem Fall int Wert b) so verfälscht wird das mit dem Ausgabewert c nichts mehr angefangen werden kann.
 
Wird es heutzutage so gehabt das die Datei in Teilen verschlüsselt wird oder als gesamtes? Wenn als gesamtes würde dafür der Weg von mir genommen werden?
 
die drei zeilen C++ haben ja auch nichts mit verschlüsselung zu tun, sondern sollen nur helfen zu verstehen, dass berechnungen im pc in der binärdarstellung geschehen und man daher nichts ins dezimalformat umwandeln muss, um damit rumzurechnen.

edit: da wie gesagt nichttriviale berechnungen mit zahlen, die millionen von stellen haben, sehr sehr aufwändig werden können, zerhackt man die dateien. kannst ja mal mit google nach "rsa blockgröße" suchen, da findest du mehr infos dazu.
 
Zuletzt bearbeitet:
Alles wird in Teilen verschlüsselt, niemals als ganzes. Sonst wäre es unmöglich 10GB Dateien zu entschlüsseln, da Chiffrat und Plaintext beide in den Ram passen müssten.
Das ganze nennt sich dann Blockchiffre. Und auch RSA wird als Blockchiffre genutzt und nicht als eine Zahl wie es auf Wikipedia steht, da diese Variante nicht sicher ist, steht aber auch dort.
 
Mir geht es nicht darum irgendetwas zu verschlüsseln. Ich wollte lediglich "verstehen" wie es funktioniert um selbst einen Verschlüsselungsalgorithmus zu programmieren. rsa Blockgröße und Blockchiffre sind da das Fundament auf welchem ich aufbauen kann. Dankeschön!

Meine Fragen wurden alle geklärt, dafür möchte ich mich bei allen Postern bedanken!

Wie immer erhielt man schnell und unkompliziert hier Hilfe! Top

Liebe Grüße
Rag4
 
Kleiner Tip: Versuch gar nicht erst, ein Krypto-System zu entwerfen. Um so etwas auch nur ANSATZWEISE zu können müsstest du schon theoretische Informatik sowie höhere Algebra studiert haben. Das ist nichts, was du als kleine Wochenend-Aufgabe angehts.

Lies z.B. mal http://de.wikipedia.org/wiki/Elgamal-Verschlüsselungsverfahren
Mal sehen, wie viele der Formeln du da wirklich verstehst und direkt nachvollziehen kannst.
 
Zurück
Oben