web-dev-qa-db-ja.com

Hashtab for Windowsと同等のチェックサムユーティリティはありますか?

WindowsのHashtabを使用して、ファイルのハッシュを計算します。私がしなければならないことは、ファイルを右クリックし、プロパティをクリックすることです。プロパティメニューにはHashというタブがあり、MD5、SHA-1などのさまざまな形式のファイルのハッシュが含まれています。

Ubuntuにそのようなものはありますか?

6
Ufoguy

使用しているウィンドウマネージャーまたはファイルマネージャーを言うことはありません。

GnomeとNautilusを使用している場合は、 nautilus-gtkhashInstall nautilus-gtkhash パッケージ。これにより、ファイルの[プロパティ]ダイアログに[ダイジェスト]タブが追加されます。

注:タブが表示される前に、nautilus -qでNautilusを再起動する必要があります。

6
Phoeey

この「ハッシュチェッカー」を試すこともできます

http://gnome-look.org/content/download.php?content=129309&id=1&tan=39290839

方法-

GUIからインストール/アンインストールする方法:「セットアップ」スクリプトを実行し、指示に従います。ターミナルから:ハッシュチェッカーのフォルダーに移動し、「./ Setup –help」と入力して(引用符なし)、使用可能な言語スイッチを確認します

使用方法Nautilusでの使用:Nautilusのどこかを右クリックして、[スクリプト]> [ハッシュの確認]に移動し、確認するファイルを参照するか、(ファイルの参照を避けるために)確認するファイルを右クリックします。次に、[スクリプト]> [ハッシュをチェック]に移動します。ファイルマネージャーでの使用:ハッシュチェッカーのデスクトップアイコンをクリックして実行し、確認するファイルを参照します

依存度Zenity(GUI表示用)md5sumおよびsha256sum(ほとんどのディストリビューションにはデフォルトで両方があります)

このサイトから入手した

http://ubuntuguide.net/md5sha256-hash-checker-gui-for-ubuntu-downloadsfiles

これも見ることができます

http://www.sinf.gr/en/hashcalc.html

これは、最初のサイトのコメントで言及されました。

0
aaditya1234

デスクトップに依存しないソリューションの1つは、 GtkHash

メッセージダイジェストまたはチェックサムを計算するためのGTK +ユーティリティ

enter image description here

Thunarを使用している場合は、thunar-gtkhashプラグインも使用できます。 Nautilus拡張機能と同様に機能します。

0
landroni

カスタムNautilusスクリプト

既存のユーティリティはいくつかありますが、そのようなタスクを実行するスクリプトをいつでも作成できます。以下に示すスクリプトはPython 3で記述されており、組み込み関数を使用して複数の種類のハッシュのハッシュ合計計算を実行し、結果をzenityテキストビューウィンドウに表示します。

使用法

最初にスクリプトをセットアップします。スクリプトのソースコードを~/.local/share/nautilus/scriptsフォルダーにファイルとして保存します。この例では、get_hashsums.pyとして保存しました。 GUIオプションまたはターミナルのchmod +xコマンドでファイルを実行可能にします。

この時点で、スクリプトは右クリックメニューからアクセスでき、Scriptsサブメニューで使用できます。

enter image description here

get_hashsums.pyをクリックすると、スクリプトはすべての必要な計算を実行し、zenityを介して実行できるすべてのハッシュ合計を含むhashlibテキストビューウィンドウを表示します。

enter image description here

スクリプトソースコード

私の個人的にも利用可能 GitHubリポジトリ (追加機能が追加される場合があります)。

#!/usr/bin/env python3
import sys
import urllib.parse
import hashlib
import os
import subprocess
import tempfile
from collections import OrderedDict as od

def get_hashsums(file_path):
    hash_sums = od()
    hash_sums['md5sum'] = hashlib.md5()
    hash_sums['sha1sum'] = hashlib.sha1()
    hash_sums['sha224sum'] = hashlib.sha224()
    hash_sums['sha256sum'] = hashlib.sha256()
    hash_sums['sha384sum'] = hashlib.sha384()
    hash_sums['sha512sum'] = hashlib.sha512()

    with open(file_path, 'rb') as fd:
        data_chunk = fd.read(1024)
        while data_chunk:
              for hashsum in hash_sums.keys():
                  hash_sums[hashsum].update(data_chunk)
              data_chunk = fd.read(1024)

    results = od()
    for key,value in hash_sums.items():
         results[key] = value.hexdigest()         
    return results

def puke(message):
    sys.stderr.write(message + '\n')
    subprocess.call(['zenity', '--error', '--text', message])
    sys.exit(2)

def write_temp_file(data):
    temp = tempfile.mkstemp()[1]
    with open(temp, 'w') as fd:
        fd.write(data)
    return temp


def main():
    uri_list = os.getenv("NAUTILUS_SCRIPT_SELECTED_URIS").strip().split()
    output_lines = []
    for uri in uri_list:
        uri_decoded = urllib.parse.unquote(uri)
        path = uri_decoded.replace('file://','').strip()
        if not os.path.isfile(path):
             puke(path+" is not a regular file")
        text = ""
        text = path + "\n" 
        hashsums = get_hashsums(path)
        for key,value in hashsums.items():
              text = text + key + " " + value + "\n"
        output_lines.append(text)

    output_file = write_temp_file("\n".join(output_lines))
    subprocess.call(['zenity','--text-info',
                     '--title','Hash Sums',
                     '--filename',output_file])
    os.unlink(output_file)

if __== '__main__': 
    try:
        main()
    except Exception as e:
        puke(repr(e))
0