Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Filehash (Datenspeicherung (Persistenz))

Berechnen Sie von einer Datei einen Hash-Wert nach folgender Formel: Jedes Byte soll als Zahl eingelesen werden. Nennen wir diese Zahlen der Einfachkeit halber a1, a2, a3, a4, a5, und so weiter. Nun soll der Hash-Wert einer Datei die folgende Summe sein:

h(File) = a1 + 31 * a2 + 312 * a3 + 313 * a4 + 314 * a5 + 315 * a6 + ...

Die Faktoren 31, 312, 313, 314, ... können in einer einzigen Variable gespeichert werden, die mit dem Wert 1 startet und bei jeder Iteration (bei jedem nächsten Zeichen) mit 31 mulitpliziert wird. Dabei soll ein Überlauf der Variable ignoriert werden.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

1 Lösung(en)

function getFileHash() {
  let file = document.getElementById('file').files[0],
      reader = new FileReader();

  reader.onload = function(evt) {
    // bits in zahlenarray der bytes umwandeln
    let bytes = new Uint8Array(evt.target.result);
    // hash berechnen
    let hash = bytes[0];
    for (let a = 1; a < bytes.length; a++)
      hash += 31**a + bytes[a];
    console.log(hash);
  }

  reader.readAsArrayBuffer(file);
}

document.write(`
  <input type="file" id="file">
  <button onclick="getFileHash()">OK</button>
`);
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1
Schwierigkeit: k.A.
Webcode: 8ksi-eazy
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen