Informatikersprache - Ich liebe dich
Hallo liebe Gemeinschaft, Ich wollte meinem Freund eine Überraschung machen, dafür bräuchte ich Informatiker.
Mein Schätzchen ist Informatiker und ich würde ihm gerne in seinem Metier "Ich liebe dich" sagen/zeigen/schicken. Aber der Binörcode ist mir ehrlich gesagt zu primitiv..
Hab einer eine Ahnung?
Liebe Grüße, Suze
5 Antworten
Nun die Frage ist, wie du ihm das zukommen lassen möchtest. Irgend nen Code an sich fände ich nun nicht so prikelnd, ist zwar ne schöne Geste aber kA.
Würde wahrscheinlich eher was in Richtung Grafikbearbeitung machen, sprich ein entsprechendes Bild ggf. mit Schriftzug. Um das ganze dann ein wenig "nerdiger" zu gestalten, kannst du es in ASCII umwandeln, dafür gibts entsprechende Generatoren im Netz.
Natürlich kann man ASCII Art auch von Hand generieren, da nutzt man dann eben etwas einfachere Muster und Strukturen und eine geringere "Auflösung".
Hmm, klickt der Informatiker nur bunte Bildchen, oder kann er auch mit einem richtigen Unix Terminal umgehen?
suze@home:~$ while true; do echo -e "Ich liebe Dich! \e[31m<3\e[m"; done;
Das gibt eine romantische Endlosschleife mit rotem Herzchen.
ab1cccbb2d825196069fd9b92834c6d8 Hier in MD5. Das Problem ist, er wird nie herausfinden was da steht :D
So ein trivialer Satz wie "Ich liebe dich." steht sicherlich in den meisten Rainbow-Tables.
Also so etwas einfaches wie "Ich Liebe Dich" bekommt man IMMER raus, vor allem wenn man MD5 als Hash-Algo benutzt. :)
Ja da gebe ich dir 100% recht, jedoch ist es möglich. ES IST MÖGLICH.
Nunja MD5 ergibt sich anhand von Regeln, diese Regeln sind wenn, wenn man den MD5 Hash hat nunmal nicht mehr da. Man kann natürlich etliche Varitionen ausprobieren, bis man die richtige hat, anhand des logischen Zusammenhangs, sofern es einen gibt. Aber auch die NSA dürfte dadrin einige Zeit und Mitarbeiter investieren müssen.
Kurz du hast dein Hash und hast X Möglichkeiten wie es zu der letzten Stelle gekommen ist, diese X Möglichkeiten haben jeweils Y Möglichkeiten wie es zu dieser Stelle gekommen ist usw. Am Ende hast du einen riesen Haufen an möglichen Kombinationen
Siehe meinen Kommentar auf den Kommentar von "Lefl1".
Kurze Sätze oder Wörter wie "Guten Tag", "Klobrille", "Privatfernsehsender", usw. lassen sich ALLE sofort "knacken".
Deshalb speichert man Passwörter in der Regel ja auch nicht gehasht, sondern auch gesalzen. Ein reiner Passwort-Hash (egal ob MD5, SHA256, Whirlpool, etc.) ist so sinnlos, dass man die Passwörter auch gleich im Klartext speichern kann. :)
Das ist dann aber i.d.R. ein einfacher Vergleich mit einer entsprechenden Liste und hat nix wirklich mit dem MD5 Algorithmus zutun. Eine wirkliche Entschlüsselung, vorallem ohne Validierung durch Menschen ist erstmal nicht möglich.
Umkehrbar ist der MD5 erstmal nicht. Man kann nur die Hashes mit Tabellen vergleichen oder einen Haufen von Kombinationen ausgeben/testen.
Das stimmt zwar alles, aber deshalb schrieb ich auch "Definitionssache". :)
Und die Rainbow-Table-Services, die es so im Internet gibt, haben Trilliarden von Passwörtern, Wortkombinationen, Sätzen, usw. gehasht, sodass man einfache Wörter und Sätze immer zur passenden MD5-Summe findet.
Ob man das nun "knacken" nennen will, oder nicht, spielt in diesem Fall keine Rolle, fakt ist, dass man in weit über 99% der Fälle an den Klartext bei einer gegebenen MD5-Summe kommen wird, wenn dieser nicht wie "dka4i49393%$$§22k" oder so aussieht. :)
Ob nun "geknackt" oder "in der Tabelle nachgeschaut" ist im Ergebnis ja das selbe: Man erhält den Klartext, der mit an Sicherheit grenzender Wahrscheinlichkeit der Gesuchte sein dürfte. (Kollisionen mal ausgenommen ... wobei die in der Praxis aber vermutlich nicht ein einziges mal auftreten werden) :)
Wenn damit die Rückwandlung von ab1cccbb2d825196069fd9b92834c6d8 in "Ich Liebe Dich" meinst, dann ist das möglich, und ich habe dafür jetzt keine 30 Sekunden benötigt! :)
Die meisten Hashes (vor allem MD5), deren Ursprungstext so kurz ist, und auch noch aus vernünftigen Wörtern besteht, "knackt" jeder mit Leichtigkeit.
Was mit Binärcode geht, funktioniert auch im Hex- oder Oct-System.
http://www.charstable.com/_site_media/ascii/chars-table-landscape.jpg
Aber das ist auch nicht viel origineller als binär.
Alternativ könntest du es in Leetspeak schreiben, das verstehen Infos in der Regel auch ^^
Eine unter Hackern und "Nerds" gängige und beliebte Schreibweise, bei der Buchstaben durch Zahlen und Sonderzeichen dargestellt werden, die fast genauso aussehen. Hier eine "Anleitung":
http://de.wikipedia.org/wiki/Leetspeak
War ursprünglich dazu gedacht, um Texte zu schreiben, die man zwar lesen, aber ncht "ergoogeln" oder mit der Suchfunktion fiinden kann.
Heute ist es meistens witzig oder "nerdig" gemeint, wenn man in Leetspeak schreibt.
Ob ich das zusammen bekomme? :S
Er hat mir mal im Programm CPlusPlus (oder so) was gezeigt, das war schon erstaunlich.. Gibt es nicht einen Befehl den man eingibt um einen gewünschten Text zu bekommen, oder ein Herz?? ;/
Mit dem Befehl meinst du sicher cout, denn das bedeutet, dass etwas angezeigt werden soll.
Wenn du ein kleines Programm schreiben willst, das nur deinen Satz ausgibt, könnte das so aussehen:
#include <iostream>
using namespace std;
int main() {
cout << " Ich liebe dich. " << endl;
}
Und das würde er vestehen als?
Also wenn ich dann an seinem PC bin und das eingebe? In dem C+++? Dann zeigt es den Satz an? --- Jaaa nicht so einfach einem Leihen sowas zu erklären, aber ich lerne schnell und etwas Interesse ist auch so vorhanden :D
In Leetspeak: !{H |_!3|3€ D!{H. Musst dir noch was für H und D einfallen lassen... Für D zum Beispiel |> oder I> (obwohl das eher nach "P" aussieht). Für H zum Beispiel sowas: |-| oder sowas... Musste dir einfallen lassen :)
Ja, das müsste gehen. Er hat dir ja bestimmt auch gezeigt, mit welchem (Texteingabe-)Programm er für gewöhnlich den Programmcode eingibt.
Je nachdem, womit du schreibst, kannst du es dann im Programm selbst ausführen (falls du z.B. Code Blocks verwendest) oder mit der Konsole starten.
println("Ich liebe doch!");
Was evtl noch kreativ wäre: zuerst deinen Namen (sagen wir mal Sophie) also: Sophie.out.println("Ich liebe dich!");
Und das würde er verstehen?? Ich möchte ja war haben, was er auf anhieb versteht, aber auch nichts so plump und langweiliges wie die dummen Zahlen..
Und wenn man über Befehle geht? Vom System schon aus? :/
Glaub mir MD5 dürften die knacken können, schließlich haben sie es erfunden :D