Kann man sowas selber schreiben (klar kann man - aber auch als relativer Laie?) und welche Sprache würde sich dafür anbieten?
Viele.
Ich würde wohl Perl nehmen. Aber schon in der bash (unter Linux) geht ein:
~ find ./ -name '*' -exec openssl md5 {} ; > ausgabe.txt.
in der ausgabe.txt steht dann (neben Fehlermeldungen für Verzeichnisse) was wie:
MD5(./.thumbnails/normal/eb66981af6bafb21f9b2ad560126994a.png)= 6448744505f0539a986300632e0b45b8
MD5(./.thumbnails/normal/afaf2e29c27aaf73fb4e6f151923dab1.png)= 27658416abe68a681fde67cbe511b02f
MD5(./.thumbnails/normal/0de01a79850552a457f075cae07aa5f3.png)= fc9c57ef8d3ca05f895c5edd65dddaaf
MD5(./.thumbnails/normal/b997bd2305b3a91e90b94bfe06f4fa33.png)= 22994d13d3f04a13d7e4f3ad447c287b
MD5(./.thumbnails/normal/b40d79bfc473d2249e5e9c7373d108d3.png)= ed69b9cb4b62dc0a96b6fe8d23e1ab16
MD5(./.thumbnails/normal/6cacf160fc7cb6729ae96ba943933ece.png)= 4145f172c8e4ba9643d7aef7348cd2a2
MD5(./.thumbnails/normal/ec91af92170295c45d98c5a0b2a5d029.png)= d6f848fb483858106f6cbb0ca0c7cbc2
Das wieder lässt sich mit grep filtern (Fehlermeldungen!) mit awk am '= ' splitten, vorher mit sed jedes MD5( und die schließende Klammer entfernen. Natürlich kann man auch einfach sort drüber jagen und nach der zweiten Spalte sortieren lassen.
Wer will schreibt es in eine Datenbank in dem er mit awk einen SQL-Dump erzeugt, den importiert und überlässt der Datenbank das Sortieren und die Ausgabe.