問題タブ [checksum]
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.
java - Java でファイルの MD5 チェックサムを取得する
Java を使用してファイルの MD5 チェックサムを取得しようとしています。本当に驚きましたが、ファイルの MD5 チェックサムを取得する方法を示すものを見つけることができませんでした。
それはどのように行われますか?
file - ヘッダーを考慮せずにオーディオ ファイルのチェックサムを計算する
音声ファイル (MP3、Ogg Vorbis、Flac) の SHA1 チェックサムをプログラムで作成したいと考えています。要件は、ヘッダー (ID3 など) が変更されてもチェックサムが安定している必要があることです。
注: オーディオ ファイルには CRC がありません。
これは私が今試したことです:
1) Perl とMPEG::Audio::Frameを使用したすべての MPEG フレームの読み取り + ハッシュ
2) Python とlibmad (pymad)を使用したすべての MPEG フレームのデコード + ハッシュ
3) mp3cat の使用
ただし、これらの方法のいずれも、安定したチェックサムを提供しませんでした。つまり、場合によっては、ファイルをpicardで再タグ付けした後にチェックサムが変更されました。
私が欲しいものをすでに提供しているライブラリはありますか?
プログラミング言語は問いません…
更新: ケースをもう少しデバッグしました。libmad チェックサムの不一致は、libmad が"Huffman data overrun (0x0238)"のようなデコード エラーを取得した場合に発生するようです。これは多くの mp3 ファイルで実際に発生するため、本当に破損したファイルを示しているかどうかはわかりません…</p>
checksum - データ+CRCからのCRCアルゴリズムの決定-組み込みアプリケーション。
修正する必要のある16ビットチェックサムで保護されたデータセットがあります。チェックサムの場所はわかっていますが、それらが計算される正確な領域と、それらを計算するために使用される正確なアルゴリズムはわかっていません。16ビット、LSBファースト。ある種の16ビットCRCだと思いますが、実際にチェックサムを計算しているコードを見つけることができませんでした。
例:
チェックサムは4Eと64に格納されます。各データセクションの最初の単語のオフセットから計算されるのか、それ以降に計算されるのか、それとも全範囲で計算されるのかわかりません。私は多くの一般的なCRCアルゴリズムと多項式を試しましたが運がありませんでした。このアプリケーションで利用できるリファレンスや仕様はありません。
比較のために、CRCが異なる別のデータセクションを次に示します。
私の質問は、誰かがアルゴリズムを識別できるかということです。データとCRCからCRC多項式と他の要因を計算する方法はありますか?
ありがとう!
編集:
一般的なCRC16多項式0xA001の分解を検索すると、この関数が明らかになりました。
java - 軽量のチェックサム アルゴリズムに適していますか?
一貫性を保つために、データの文字列のチェックサムを生成する必要があることに気づきました。大まかな考え方は、クライアントが受信したペイロードに基づいてチェックサムを再生成し、転送中に発生した破損を検出できるというものです。この種のことの背後にはあらゆる種類の数学的原理があり、自分でロールしようとすると、微妙なエラーがアルゴリズム全体を無効にするのは非常に簡単であることを漠然と認識しています.
そこで、次の基準を持つハッシュ/チェックサム アルゴリズムに関するアドバイスを探しています。
- Javascript によって生成されるため、比較的軽い計算である必要があります。
- 検証は Java によって行われます (ただし、これが実際に問題になることはわかりません)。
- 適度な長さのテキスト入力 (URL エンコードされた Unicode、ASCII だと思います) が必要です。通常は約 200 ~ 300 文字で、すべての場合で 2000 文字未満です。
- 出力も ASCII テキストである必要があり、短いほど良い結果が得られます。
私は主に、衝突の可能性を最小限に抑えることよりも、軽量なものに関心があります。8 文字のハッシュがこれに適していると想像するのは単純すぎますか? また、検証段階で破損が検出されなかったとしても、世界の終わりではないことを明確にする必要があります (これが 100% 信頼できるわけではないことは認識しています)。すり抜ける不正なエントリ。
編集 - 貢献してくれたすべての人に感謝します。私は Adler32 オプションを使用しましたが、それが Java でネイティブにサポートされていて、Javascript での実装が非常に簡単で、両端での計算が速く、8 バイトの出力があることを考えると、私の要件にぴったりでした。
(ネットワーク トランスポートが破損エラーの原因である可能性は低いことを認識しており、この問題についてはまだ腕を組んでいないことに注意してください。ただし、チェックサム検証を追加すると、障害点が 1 つ取り除かれ、他の領域に集中できるようになります。これが再発する場合。)
language-agnostic - ハッシュコードとチェックサム - 違いは何ですか?
私の理解では、ハッシュ コードとチェックサムは似たようなものです。つまり、データ ブロックに対して計算された、比較的一意の数値です。
つまり、データの 2 つのブロックが同じ数値のハッシュ/チェックサム値を生成する確率は十分に低いため、アプリケーションの目的では無視できます。
では、同じことを表す 2 つの単語があるのでしょうか、それともハッシュ コードとチェックサムには重要な違いがあるのでしょうか?
windows - 私のマシンにあるファイルのチェックサムを計算する最良の方法は何ですか?
Windowsマシンを使用していて、入手したMySQLディストリビューションでチェックサムを実行したいと思います。ダウンロードする製品、サポートされていないMicrosoftツール、およびおそらく他のオプションがあるようです。使用するのに最適なツールについてのコンセンサスがあるかどうか疑問に思います。これは本当に簡単な質問かもしれません。私はこれまでチェックサムルーチンを実行したことがありません。
generator - IPv6 でチェックサムを正しく計算する libnet
最近、libnet をいじり始め、それを使用して IPV6 パケットを生成しました。私はプログラミングに非常に慣れていませんが、ライブラリには非常に満足しています。
ただし、1つの問題があります。現在、libnet には IPV6 パケットのチェックサムを正しく計算する機能がないようです。プログラミングに慣れていないので、まだこの問題を修正することはできません (とはいえ、学習中なので、いつの日か修正できるようになります)。
興味がありますが、これを適切に実行できるライブラリのバージョンに出くわした人はいますか?
ありがとう!
php - PHPでのCRC8チェック
PHPでCRC-8チェックサムを生成するにはどうすればよいですか?
algorithm - 基数 31 の値のチェック ディジット アルゴリズムとして何を使用すればよいですか?
次の一連の値を使用して、9 文字の長さの base 31 値を作成しています:
0123456789ABCDEFGHJKLMNPQRTUWXY
Luhn アルゴリズムを自分のベースで動作するように変更することを考えていました。
私の質問は:
底が 10 の場合、Luhn アルゴリズムは各値を偶数の位置で 2 倍にし、結果が 10 を超える場合、結果の個々の桁を加算します。
偶数の掲載順位の値を 2 倍にするか、より高い乗数を使用する必要がありますか?
文字の転置、文字の欠落、余分な文字、単なる間違った数字から保護しようとしています。
imap - imap - 完全なメッセージが転送されたことを検証する方法は?
IMAP プロトコルは、完全なメッセージがサーバーからローカル クライアントに転送されたことを検証/検証する方法を提供しますか? つまり、ETag / MD5 またはその他のチェックサムに相当するものはありますか?