問題タブ [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.
checksum - REBOL 3 モジュールのチェックサムを計算するにはどうすればよいですか?
REBOL 3 では、SHA1 モジュールのチェックサムを計算することが可能です。REBOL がモジュールをロードするとき、そのチェックサムをロードされたモジュールのチェックサムと比較し、2 つが一致しない場合、エラーが生成されます。access error: invalid checksum (tampered file)
.
どうやっても、REBOL 3 が好むモジュール チェックサムを作成できないようです。のドキュメントを見るとimport
、その/check
改良は の使用checksum/secure
を示していmold/flat
ます。私は運がないので、これのあらゆる種類のバリエーションを試しました:
等々。どれも機能しません。私が間違っている単純なことがあるに違いありません。
c# - 計算されたチェックサムがシリアルポート経由で送信されたBCCと一致しないのはなぜですか?
入ってくる情報をSerialPortでリッスンするC#で書かれた小さなアプリケーションがあります。情報は次のように届きますSTX + data + ETX + BCC
。次に、送信パケットのBCCを計算し、比較します。関数は次のとおりです。
そして、それは多かれ少なかれ機能するようです。STXまたはBCCは正確に含まれておらず、計算にはETXが正確に含まれています。非常に大きな割合で動作しているようですが、これを実行しているマシンは少なくとも2台あり、どちらもWindows 2008 64ビットであり、BCC計算が加算されることはありません。私が1バイトに持っていた最近のログからプルして20が送信され、16を計算し、1つは11が送信され、27を計算しました。
私はここで何が起こっているのか絶対に困惑しています。私がここで見逃している64ビットまたはWindows2008の「落とし穴」はおそらくありますか?どんな助けでも、あるいは野蛮な考えさえもいただければ幸いです。
編集:
データを読み取るコードは次のとおりです。
そして、DataReceived()
関数はその文字列を受け取り、それをグローバルStringBuilder
オブジェクトに追加します。その後、これらのさまざまな関数に渡されるまで文字列ビルダーとして残り、その時点で.ToString()
が呼び出されます。
EDIT2:文字列ではなくバイト/バイト配列で動作する変更されたルーチンを反映するようにコードを変更しました。
EDIT3:私はまだこれを理解していません、そして私は完全に一貫性のない結果を持っているより多くのテストデータを手に入れました(私が送信チェックサムから外れる量はパターンなしで毎回異なります)。チェックサムの計算が間違っているように感じますが、方法がわかりません。
c# - ワードドキュメントに関連するメタデータはありますか?
バイナリレベルで開いて、単語ドキュメントのチェックサムを生成しようとしています。ドキュメントのチェックサムを生成します。ドキュメントを別の場所にコピーします。ドキュメントの内容を変更していませんが、新しい場所でチェックサムを生成すると、異なる値が取得されます。ドキュメントを同じ場所にコピーして戻しても、チェックサムは異なります。これは、.txtファイルや.pdfファイルなどの他のファイルタイプでは発生しません。したがって、これは、チェックサムの生成にバグがないことを証明します。しかし、私が感じているのは、バイナリレベルで.docファイルを開くことにより、さまざまなドキュメントのメタデータのチェックサムを生成しているということです。私は正しいですか?教えてください。
sql-server - SQLServerのテーブルのハッシュまたはチェックサムを計算する
SQL Server 2008でテーブル全体のチェックサムまたはハッシュを計算しようとしています。発生している問題は、テーブルにXML列のデータ型が含まれていることです。これは、チェックサムでは使用できないため、nvarcharに変換する必要があります。最初。だから私はそれを2つの問題に分解する必要があります:
- 行のチェックサムを計算します。実行前にスキーマが不明です。
- すべての行のチェックサムを計算して、完全なテーブルチェックサムを取得します。
c - インターネット チェックサムのビット シフト
これはほぼ間違いなく非常にばかげた質問ですが、何らかの理由でインターネット チェックサムの計算に問題があります。すべてのアルゴリズムは、基本的に次のようになります。
次の行を除いて、すべて明確です。
上位 16 ビットを下位 16 ビットに追加し、上位 16 ビットをすべてゼロのままにする直前の行のように見えます。その場合、合計 >> 16 はゼロに等しくなりませんか? もしそうなら、なぜその行があるのですか?
それとも、私は(おそらく)今日、完全な精神障害を抱えているのでしょうか?
duplicates - チェックサムを保存せずに重複ファイルをチェックする
たとえば、さまざまなクライアントから送信されたファイルを処理するアプリケーションがあります。クライアントは毎日大量のファイルを送信し、それらのファイルのコンテンツをシステムにロードします。ファイルの形式は同じです。与えられている唯一の制約は、同じファイルを2回実行することは許可されていないということです。
特定のファイルを実行したかどうかを確認するには、ファイルのチェックサムを作成して別のファイルに保存します。したがって、新しいファイルを取得したら、そのファイルのチェックサムを作成し、実行して保存した他のファイルのチェックサムと比較できます。
これまでに実行したすべてのファイルのすべてのチェックサムを含むファイルは、非常に大きくなっています。検索と比較には時間がかかりすぎます。
注:アプリケーションは、データベースとしてフラットファイルを使用します。rdbmsなどの使用を提案しないでください。現時点では不可能です。
重複ファイルをチェックする別の方法があると思いますか?
communication - バイト プロトコルの構築に関するヒント
デバイス間でデータを通信していますが、プロトコルをバイト配列としてプログラムする必要があります。
低レベルでプロトコルを構築する際のヒントはありますか? ..例:
- 2 バイトのヘッダーを使用して、データ バイトの前にメッセージの長さを送信します。
- CRC/データ検証スキームを使用します。(これを行うにはどうすればよいですか?簡単なチェックサムはありますか?)
perl - Perlで大きな16進数値を合計するにはどうすればよいですか?
32 ビットの 16 進数文字列 ("DEADBEEF"、"12345678" など) のセットを反復処理しており、それらを合計して 32 ビットのチェックサムを形成しようとしています。$temp
以下の例では、変数が何らかの 16 進文字列でロードされていると仮定します。
最初のいくつかの値は、「7800798C」、「44444444」、および「44444444」です。出力は次のとおりです。
チェックサム: 7800798C
チェックサム: BC44BDD0
チェックサム: FFFFFFFF
チェックサム: FFFFFFFF
等..
ご覧のとおり、最初の 2 つの合計は正しく、その後飽和しているように見えます。Perl 変数のサイズ制限に関して何か不足していますか?
EDIT : これはスクリプトからの実際の出力です (文字列は 16 進文字列、値はその文字列の 10 進数変換、チェックサムは結果の出力です):
delphi - Delphi 6 で 2 回コンパイルし、バイナリで同じチェックサムを取得する
バイナリ/ソース コードの検証の目的で、同じコンピューターで 2 週間間隔で 2 つのコンパイルを行い、バイナリを同一にして、チェックサム テストに合格できるようにしたいと考えています。
これまでのところ、コンパイラによってタイムスタンプがバイナリに書き込まれる可能性が最も高いことがわかりました。この msdn の記事に従って、dumpbin /rawdata の結果を比較することで、これを回避できます。
http://support.microsoft.com/kb/164151
ただし、ダンプビンの結果は依然として約 10 か所で異なり、たとえば、何らかのタイムスタンプ (A1 73 から C4 76 への変更) のように見えます。
これは、デルファイ コンパイラがコード/データ セクションに入れているタイムスタンプだと思いますが、これがどこで発生しているのか、またはオフにする方法がわかりません。さまざまなコンパイラ/リンカー オプションをいじっても、この動作は変わりません。
どんな助けでも大歓迎です。