Verschlüsselung – die neusten Beiträge

MD5-Hash bei Java und C# geben nicht das selbe Ergebnis?

Hallo zusammen,

ich versuche in den letzten Tage mich mit der Entwickleroberfläche der FritzBox auseinander zu setzen. Leider scheitete ich am Session ID Login.

Der Login funktioniert über eine Challenge (String) den mir die FritzBox generiert und dem Passwort der FritzBox. Wenn ich den Login richtig verstanden habe geht er wie folgt:

Schritt 1: Challenge erhalten via fritz.box/login_sid.lua

Schritt 2: Alle Zeichen im Passwort der FritzBox, welche nicht in ISO-8859-1  
           anzeigbar sind (einen CodePoint von über 255 besitzen) mit einem "."  
           ersetzen

Schritt 3: Einen MD5-Hash im Format von 32 Hexzeichen mit Kleinbuchstaben 
           generieren aus dem String %Challenge%-%Passwort% (%Challenge% ist die
           aus dem Schritt 1, %Passwort% ist das Passwort der FritzBox aus dem 
           Schritt 2)

Schritt 4: Das Ergebnis zum Anmelden nutzen: 
           http://fritz.box/login_sid.lua?response=%Challenge%-%Ergebnis% 
           (%Ergebnis% ist der 
           MD5-Hash aus Schritt 3)

So: Was ist nun mein Problem?

Ich möchte diesen MD5-Hash generieren. Ich habe mir bereits Tutorials angeschaut, wie die von baeldung.com und auch einen String als Ergebnis bekommen. Das Problem ist aber, dass der Hash falsch ist.

Also habe ich mir den Beispiel C#-Code auf der FritzBox Webseite angeschaut und ausprobiert. Das Ergebnis ist ein ganz anderer Hash. Wie kommt das zu Stande?

Damit man mich besser versteht, habe ich hier meinen Java Code und den Code aus C#.

Input bei allen:

51cbb71a-Test

Java (Möglichkeit 1): https://pastebin.com/vpzA8mr9 (um Platz zu sparen als Link)

Output:

DigestTest: 3e2a82112b721922d21a2e62e12f02212b02142c12692a82

Java (Möglichkeit 2):

StringBuilder builder = new StringBuilder();
for (byte b : DigestUtils.md5(input)) {
    builder.append(byteToHex(b));
}
System.out.println("BuilderDigest: " + builder.toString());

Output:

BuilderDigest: 3ea811b7192d1ae6e1f021b014c169a8

Java (Möglichkeit 3):

String md5Hex = DigestUtils.md5Hex(input); //API: commons-codec-1.15.jar
System.out.println("Hash: " + md5Hex);

Output:

Hash: 3ea811b7192d1ae6e1f021b014c169a8

C#

static void Main(string[] args) {
  try {
    MD5 md5Hasher = MD5.Create();
    byte[] encoded = Encoding.Unicode.GetBytes("51cbb71a-Test");
    byte[] data = md5Hasher.ComputeHash(encoded);
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < data.Length; i++) {
      builder.Append(data[i].ToString("x2"));
    }
    Console.WriteLine(builder.ToString());
  } catch(IndexOutOfRangeException exception) {
    Console.WriteLine("null");
  }
}

Output:

0e9af10abdb7cd7119a85967272e3bc3

Wieso kommt da was anderes raus und wie kann ich das nun auch in Java umsetzen? (Der C#-Code gibt die richtige Lösung!)

Danke schon einmal im Voraus!

Links die Helfen können:

  • https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/Session-ID_deutsch_13Nov18.pdf
  • https://www.baeldung.com/java-md5 (etwas alt)
  • https://www.youtube.com/watch?v=hW2s03abGaI
  • https://codedocu.de/...
Computer, programmieren, Java, C Sharp, Encoding, Informatik, Verschlüsselung

Android 6 Marshmallow: Wie kann ich eine als internen Speicher formatierte SD-Karte mit einem anderen Gerät auslesen (Datenrettung)?

Hallo,

die Intention meines Vorhabens erläuterte ich bereits an anderer Stelle ausführlicher: https://www.gutefrage.net/frage/android-marshmallow-hilfe-ich-komme-nicht-mehr-an-die-daten-auf-meiner-sd-karte-was-soll-ich-tun?
Nachdem ich also de facto mit meinem Handy (Moto X Play) nicht mehr in der Lage zu sein scheine, sinnvoll auf die Inhalte der SD-Karte zuzugreifen, suche ich mittlerweile händeringend nach einer Lösung, die darauf befindlichen Fotos und sonstigen Dateien zu retten. Gibt es hierfür irgendeinen Weg?

Das Problem besteht im Wesentlichen darin, dass die SD-Karte unter Android Marshmallow als Erweiterung des internen Speichers formatiert wurde und am PC somit nur ein kryptisches Systemverzeichnis, nicht aber die ersehnten Fotos auftauchen.
Wie komme ich dennoch an meine wichtigen Daten heran? Was sollte ich tun, sollte mein Handy einen sonstigen irreparablen Schaden erleiden (was ja hier der Fall zu sein scheint)?

  • Können Recuva o. ä. die am PC nicht mehr sichtbaren Daten rekonstruieren? (Ich habe es noch nicht probiert, um nicht etwa wichtige Informationen zu überschreiben. Besteht eine solche Gefahr?)
  • Angenommen, ich setze mein Moto OHNE SD-Karte auf Werkseinstellungen zurück (ich rechne mir nicht ungewisse Chancen aus, dass dies die Speicherprobleme beheben könnte): Wäre ich dann noch in der Lage, auf die offenbar in irgendeiner Art und Weise verschlüsselten Dateien zuzugreifen - oder wären sie dann auf jeden Fall verloren?

Über eure Hilfe wäre ich sehr dankbar! Ich möchte meine lieben an die tausend Erinnerungsfotos retten ... :-(

Grüße,
KnorxThieus

PC, Computer, Handy, Foto, Windows, Datei, Telefon, Formatierung, formatieren, Android, Datenrettung, Motorola, SD-Karte, Verschlüsselung, verschlüsseln, interner speicher, Windows 10, Android 6

Meistgelesene Beiträge zum Thema Verschlüsselung