問題タブ [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.
python - Python データ/ファイル Crc
後で比較として使用できるファイルの特定のリストの CRC (または同様の) 値を生成して保存したいと考えています。これを行う関数を書くのは簡単ですが、Python ライブラリ内でそれを行うためのより標準的な方法はありますか?
生成される値は、特定の基準である必要はありません。
python - Pythonhashlibとsha512sumツールのSHA512の違い
Linuxの「sha512sum」ツールとPythonのhashlibライブラリから異なるメッセージダイジェストを取得しています。
これが私のUbuntu8.10で得られるものです:
どちらも文字列「test」のメッセージダイジェストを計算する必要がありますが、なぜ私が異なる結果を得ていると思いますか?
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つの異なるライブラリがあり、一方を使用したいが、最初のライブラリがそうでない場合はフォールバックしてもう一方を使用するなど、より一般的なケースでこの問題をどのように解決しますか。見つかった。
python - Python で大きなファイルのチェックサムを作成する最速の方法
ネットワーク経由で大きなファイルを転送する必要があり、それらのチェックサムを 1 時間ごとに作成する必要があります。そのため、チェックサムを生成する速度は私にとって重要です。
どういうわけか、Windows XP Pro 64 ビット マシンで zlib.crc32 と zlib.adler32 を 4GB を超えるファイルで動作させることができません。ここで 32 ビットの制限に達したのではないでしょうか? hashlib.md5 を使用して結果を得ることができましたが、問題は速度です。4.8GB ファイルの md5 を生成するには、約 5 分かかります。タスク マネージャーは、プロセスが 1 つのコアのみを使用していることを示しています。
私の質問は次のとおりです。
- 大きなファイルでcrcを機能させる方法はありますか? md5よりcrcの方が好き
- そうでない場合、md5.hexdigest()/md5.digest を高速化する方法はありますか? またはこの場合、hashlib hexdigest/digest はありますか? 多分それをマルチスレッドプロセスに分割しますか?それ、どうやったら出来るの?
PS: 私は「資産管理」システムのようなものに取り組んでいます。svn のようなものですが、資産は大きな圧縮された画像ファイルで構成されています。ファイルには、わずかな増分変更があります。変更の検出とエラーの検出には、ハッシュ/チェックサムが必要です。
python - hashlib状態の永続化
hashlib
インスタンスを作成しupdate()
て、その状態を何らかの方法で永続化したいと思います。後で、この状態データを使用してオブジェクトを再作成し、続行したいと思いますupdate()
。hexdigest()
最後に、データの累積実行の合計を取得したいと思います。状態の永続性は、複数の実行にわたって存続する必要があります。
例:
編集:
私は2010年にPythonでこれを行うための良い方法を見つけられず、これを達成するためにCで小さなヘルパーアプリを書くことになりました。ただし、その時点では利用できなかった、または知られていない、いくつかの優れた回答が以下にあります。
python - 異なるバージョンの sha ハッシュ (hashlib モジュール) を使用すると、大きなオーバーヘッドが発生しますか?
hashlib
Python モジュールは、次のハッシュ アルゴリズム コンストラクターを提供します: md5()
、sha1()
、sha224()
、sha256()
、sha384()
およびsha512()
。
md5 を使用したくない場合、たとえば sha512 の代わりに sha1 を使用することに大きな違いはありますか? のようなものを使用したいのですhashlib.shaXXX(hashString).hexdigest()
が、それはキャッシュのためだけなので、512 の (最終的な) 余分なオーバーヘッドが必要かどうかはわかりません...
このオーバーヘッドは存在しますか?存在する場合、その大きさはどのくらいですか?
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と一緒にダウンロードしました)
python - Python ハッシュの操作
かなり奇妙な問題があります。分散ハッシュ テーブルの場合、MD5 ハッシュに対して簡単な数学演算を実行できる必要があります。これらには、合計 (ハッシュで表される数値の合計) とモジュロ演算が含まれます。今、これらの操作を実装する最良の方法は何だろうと思っています。hashlib を使用してハッシュを計算していますが、取得したハッシュは文字列であるため、どのように計算すればよいでしょうか?
python - 塩を使用してSHA512でハッシュしますか?-Python
私はhashlibのドキュメントを調べてきましたが、データをハッシュするときにsaltを使用することについて話しているものは何も見つかりませんでした。
ヘルプは素晴らしいでしょう。