解説
パリティビットより少し強力なのがチェックサムです。送るデータの数値をすべて足し合わせ、その合計(ここでは256で割った余り)を一緒に送ります。
受信側は届いたデータからもう一度合計を計算し、送られてきたチェックサムと比べます。一致しなければ、途中でデータが化けたか改ざんされたと分かります。ここでは1つの値を書き換えて、合計が変わり検出できることを確認します。
書き方
・def checksum(values): チェックサムを計算する関数を定義。 ・sum(values) % 256: 合計を256で割った余りをチェックサムとする。 ・return 値: 関数の戻り値を返す。 ・data[:]: リストの浅いコピーを作り受信データとする。 ・if cs == cs2: 送信時と再計算のチェックサムを比較して誤り・改ざんを判定。
書いて動かす
この回の課題
データの合計(mod 256)をチェックサムとして一緒に送り、値を改ざんして不一致で検出できることを確かめてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。