Woher weiß ich, dass beim Speichern eines Dokuments über die Public API die Datei auch genauso gespeichert wird, wie sie im Original vorliegt? Wer garantiert einem, dass die Datei - warum auch immer - auf dem Weg ins System nicht verfälscht wurde?

Um sicherzugehen, dass eine Datei beim Speichern über die Public API auch so im System landet, wie sie im Original vorliegt, gibt es grundsätzlich mehrere Optionen. 

Die offensichtlichste Option ist es, die Datei nach dem Speichern herunterzuladen und mit dem Original binär zu vergleichen. Das funktioniert zwar, ist aber inperformant und geht zulasten der Bandbreite, da die komplette Datei mindestens 2 mal über die Leitung geht. Zum anderen möchte ich i.d.R., dass erst gar kein Dokument mit einer verfälschten Datei im System angelegt wird.

Eine andere Option ist es, einen Hash über die Originaldatei zu ermitteln und diesen Hash beim Speichern mitzugeben. In der DMS-App wird dann ebenfalls von der zu speichernden Datei ein Hash ermittelt und mit dem übergebenem Hash verglichen. Stimmen beide Hashwerte überein, wird die Datei gespeichert. Weichen sie voneinander ab, wird der Speichervorgang mit einer Fehlermeldung abgebrochen.

Hierfür gibt es mit checkHash einen neuen, optionalen Parameter in der public API der DMS-App. Dieser kann bei der initialen Speicherung und bei der Aktualisierung von Dokumenten verwendet werden.

Folgende Hash-Algorithmen werden unterstützt:

  • RIPEMD256
  • SHA256
  • SHA384
  • SHA512
  • MD5

Näheres findest du in der public API der DMS-App.