問題タブ [hashlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3254 参照

python - Python データ/ファイル Crc

後で比較として使用できるファイルの特定のリストの CRC (または同様の) 値を生成して保存したいと考えています。これを行う関数を書くのは簡単ですが、Python ライブラリ内でそれを行うためのより標準的な方法はありますか?

生成される値は、特定の基準である必要はありません。

0 投票する
3 に答える
4635 参照

python - Pythonhashlibとsha512sumツールのSHA512の違い

Linuxの「sha512sum」ツールとPythonのhashlibライブラリから異なるメッセージダイジェストを取得しています。

これが私のUbuntu8.10で得られるものです:

どちらも文字列「test」のメッセージダイジェストを計算する必要がありますが、なぜ私が異なる結果を得ていると思いますか?

0 投票する
2 に答える
5981 参照

python - hashlib/md5。Python2.4との互換性

python 2.6は、md5モジュールが廃止されたため、hashlibを使用する必要があると報告しています。に変更import md5するimport hashlibと、python2.5とpython2.6は解決されますが、hashlibモジュールがないpython 2.4は解決されません(ImportErrorが発生します。これをキャッチできます)。

これを修正するために、try / catchを実行し、getMd5()関数を定義して、tryブロックの結果に従って適切な関数が定義されるようにします。この解決策は大丈夫ですか?

たとえば、目的は同じでインターフェースが異なる2つの異なるライブラリがあり、一方を使用したいが、最初のライブラリがそうでない場合はフォールバックしてもう一方を使用するなど、より一般的なケースでこの問題をどのように解決しますか。見つかった。

0 投票する
6 に答える
16998 参照

python - Python で大きなファイルのチェックサムを作成する最速の方法

ネットワーク経由で大きなファイルを転送する必要があり、それらのチェックサムを 1 時間ごとに作成する必要があります。そのため、チェックサムを生成する速度は私にとって重要です。

どういうわけか、Windows XP Pro 64 ビット マシンで zlib.crc32 と zlib.adler32 を 4GB を超えるファイルで動作させることができません。ここで 32 ビットの制限に達したのではないでしょうか? hashlib.md5 を使用して結果を得ることができましたが、問題は速度です。4.8GB ファイルの md5 を生成するには、約 5 分かかります。タスク マネージャーは、プロセスが 1 つのコアのみを使用していることを示しています。

私の質問は次のとおりです。

  1. 大きなファイルでcrcを機能させる方法はありますか? md5よりcrcの方が好き
  2. そうでない場合、md5.hexdigest()/md5.digest を高速化する方法はありますか? またはこの場合、hashlib hexdigest/digest はありますか? 多分それをマルチスレッドプロセスに分割しますか?それ、どうやったら出来るの?

PS: 私は「資産管理」システムのようなものに取り組んでいます。svn のようなものですが、資産は大きな圧縮された画像ファイルで構成されています。ファイルには、わずかな増分変更があります。変更の検出とエラーの検出には、ハッシュ/チェックサムが必要です。

0 投票する
5 に答える
2912 参照

python - hashlib状態の永続化

hashlibインスタンスを作成しupdate()て、その状態を何らかの方法で永続化したいと思います。後で、この状態データを使用してオブジェクトを再作成し、続行したいと思いますupdate()hexdigest()最後に、データの累積実行の合計を取得したいと思います。状態の永続性は、複数の実行にわたって存続する必要があります。

例:

編集:

私は2010年にPythonでこれを行うための良い方法を見つけられず、これを達成するためにCで小さなヘルパーアプリを書くことになりました。ただし、その時点では利用できなかった、または知られていない、いくつかの優れた回答が以下にあります。

0 投票する
2 に答える
11882 参照

python - 異なるバージョンの sha ハッシュ (hashlib モジュール) を使用すると、大きなオーバーヘッドが発生しますか?

hashlibPython モジュールは、次のハッシュ アルゴリズム コンストラクターを提供します: md5()sha1()sha224()sha256()sha384()およびsha512()

md5 を使用したくない場合、たとえば sha512 の代わりに sha1 を使用することに大きな違いはありますか? のようなものを使用したいのですhashlib.shaXXX(hashString).hexdigest()が、それはキャッシュのためだけなので、512 の (最終的な) 余分なオーバーヘッドが必要かどうかはわかりません...

このオーバーヘッドは存在しますか?存在する場合、その大きさはどのくらいですか?

0 投票する
2 に答える
1493 参照

python - この Python スクリプトの MD5 ダイジェストですか?

先日Stackoverflowで私に与えられたPythonでのこの単純なhashlibコードを理解しようとしています:

print mこれで、「ここでスパムの繰り返しを検査する人はいません」というフレーズの MD5 ダイジェストが表示されると思いましたが、その結果、ローカル ホストに次の行が表示されました。

奇妙なことに、ページを更新すると、別の行が表示されました。

更新するたびに、別の値を取得します。

md5 HASH オブジェクト @ 017F8AE0

md5 HASH オブジェクト @ 01806220

md5 HASH オブジェクト @ 01806360

md5 HASH オブジェクト @ 01806400

md5 HASH オブジェクト @ 01806220

なぜそうなのですか?たぶん、「@」が続く各行にあるのは、実際にはダイジェストではありません。では、それは何ですか?このコードで MD5 ダイジェストを表示するにはどうすればよいですか?

私のpythonバージョンはPython 2.5で、現在使用しているフレームワークはwebappです(「Google App Engine」からSDKと一緒にダウンロードしました)

0 投票する
1 に答える
8954 参照

python - Python ハッシュの操作

かなり奇妙な問題があります。分散ハッシュ テーブルの場合、MD5 ハッシュに対して簡単な数学演算を実行できる必要があります。これらには、合計 (ハッシュで表される数値の合計) とモジュロ演算が含まれます。今、これらの操作を実装する最良の方法は何だろうと思っています。hashlib を使用してハッシュを計算していますが、取得したハッシュは文字列であるため、どのように計算すればよいでしょうか?

0 投票する
6 に答える
73712 参照

python - 塩を使用してSHA512でハッシュしますか?-Python

私はhashlibのドキュメントを調べてきましたが、データをハッシュするときにsaltを使用することについて話しているものは何も見つかりませんでした。

ヘルプは素晴らしいでしょう。