#41

チェックサム:合計で誤り・改ざんを見抜く

データの合計を一緒に送り、受信側が再計算して照合します。

解説

パリティビットより少し強力なのがチェックサムです。送るデータの数値をすべて足し合わせ、その合計(ここでは256で割った余り)を一緒に送ります。 受信側は届いたデータからもう一度合計を計算し、送られてきたチェックサムと比べます。一致しなければ、途中でデータが化けたか改ざんされたと分かります。ここでは1つの値を書き換えて、合計が変わり検出できることを確認します。

書き方

・def checksum(values): チェックサムを計算する関数を定義。
・sum(values) % 256: 合計を256で割った余りをチェックサムとする。
・return 値: 関数の戻り値を返す。
・data[:]: リストの浅いコピーを作り受信データとする。
・if cs == cs2: 送信時と再計算のチェックサムを比較して誤り・改ざんを判定。

書いて動かす

この回の課題

データの合計(mod 256)をチェックサムとして一緒に送り、値を改ざんして不一致で検出できることを確かめてみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。