Was ist der beste Weg, um SHA1 als Kontextmenüoption in Mac OS X zu berechnen?

Um die SHA1-Prüfsumme einer heruntergeladenen Datei zu berechnen, könnte ich

/usr/bin/openssl sha1

Im Terminal und ziehe dann die Datei dorthin, die ich überprüfen möchte. Um es einfacher zu machen, könnte man einen Kontextmenüeintrag für diese Aktion aktivieren.

Was ist der beste Weg, um ein solches Element in Mac OS X 10.6 zu erstellen? Eine detaillierte Antwort wird geschätzt, da ich keine guten Erfahrungen mit AppleScript usw. habe.


Schritt für Schritt

    {[14],} Öffnen Automator
  1. Neuen Dienst erstellen
  2. Ausgewählte Dateien und Ordner im Finder empfangen
  3. Aktion Hinzufügen Führen Sie Shell-Skript, wo Sie Ihre bash-Befehl /usr/bin/openssl sha1 "$@" und übergeben Sie die Eingabe als Argumente

Wie kann ich die Ausgabe? Vorzugsweise in einem Knurren Pop-up oder ein Nachrichtenfenster / Dialog.

Author: Peter Mortensen, 2010-05-09

2 answers

  1. Automator öffnen
  2. Neuen Dienst erstellen
  3. Wählen Sie, ob Sie ausgewählte Dateien und Ordner im Finder empfangen möchten (Hinweis: Dies funktioniert bei Ordnern nicht so gut...)
  4. Aktion hinzufügen Shell-Skript ausführen, Shell auf /bin/bash setzen und Eingabe an "als Argumente" übergeben und dieses Skript eingeben:

    for file; do
        if [[ -d "$file" ]]; then
            echo "$(basename "$file") is a directory"
        else
            cd "$(dirname "$file")"
            /usr/bin/openssl sha1 "$(basename "$file")"
        fi
    done | tr "\n" "\r"
    
  5. Aktion hinzufügen Führen Sie Applescript aus und geben Sie dieses Skript ein:

    on run {input, parameters}
        tell application "System Events"
            activate
            display dialog input buttons {"OK"} default button 1
        end tell
    end run
    
  6. Speichern Sie den Dienst mit einem beschreibenden Namen

 10
Author: Gordon Davisson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-05-11 06:55:00

Ich nahm Gordons ausgezeichnete Antwort als Ausgangspunkt und verschönerte sie ein wenig. Veröffentlichen Sie diese Änderungen hier, falls jemand anderes sie nützlich finden könnte. Meine Version berechnet sowohl das MD5 als auch die SHA1-Hashes (in einem besser lesbaren Format) und verfällt auch nach 5 Minuten, wenn Sie vergessen, auf die Schaltfläche "OK" zu klicken, anstatt einen AppleScript-Fehler auszulösen.

Shell-Skript -

    for file; do
      if [[ -d "$file" ]]; then
        echo "$(basename "$file") is a directory"
      else
        cd "$(dirname "$file")"
        echo -e "$(basename "$file")\r"
        echo -n "MD5: "
        /usr/bin/openssl md5 "$(basename "$file")" | egrep -o [a-f0-9]{32}
        echo -n "SHA1: "
        /usr/bin/openssl sha1 "$(basename "$file")" | egrep -o [a-f0-9]{40}
      fi
    done | tr "\n" "\r"

AppleScript -

    on run {input, parameters}
      with timeout of 360 seconds
        tell application "System Events"
          activate
          display dialog input buttons {"OK"} default button 1 with title "Cryptographic Hashes" giving up after 300 --seconds
        end tell
      end timeout
    end run
 4
Author: luckman212,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-02-10 14:19:19