Kann md5 auf mehrere Kerne / Threads aufgeteilt werden?

Bei der Berechnung der md5-Summe großer Dateien sehe ich, dass ein einzelner CPU-Kern so lange auf 100% springt, wie es dauert, und alle anderen Kerne im Leerlauf bleiben.

Mein rudimentäres Verständnis von md5 ist, dass der gesamte Prozess vollständig linear ist, wobei die Werte von allen zuvor gelesenen Werten abhängen und wir nichts tun können, um ihn multithreaded zu machen. Ist das wahr?

Oder gibt es eine Möglichkeit, die Dateien in Abschnitte zu zerlegen, zu berechnen<etwas> über mehrere Teile mit mehreren Kernen, und kombinieren Sie diese<etwas> Werte in die endgültige md5?

Die Bibliothek, die wir zur Berechnung der MD5-Summe verwenden, isthttp://libmd5-rfc.sourceforge.net/ aber ich würde zu einem anderen wechseln, wenn es möglich wäre, die MD5-Summe auf mehrere Kerne aufzuteilen, damit sie schneller abgeschlossen werden kann.

(Hinweis: Der Wechsel zu etwas anderem als md5 ist nicht die Frage, und dies kann auch nicht aufgrund der anderen geschlossenen Systeme erfolgen, an die sich dies anschließt. Auch diese Frage betrifft nicht die Sicherheit der Verwendung von md5.)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage