ハッシュ値
ハッシュ値は元データから特定のアルゴリズムによって生成される不規則な文字列のこと。元データを短い固定長のデータで表現したものともみなせるため、要約値・ダイジェスト値と呼ばれることもある。ハッシュ値を得るために用いるアルゴリズムがハッシュ関数となる。 ハッシュ値の特徴として、不可逆であること、すなわち元データを復元するのが不可能、あるいは非常に困難な点が挙げられる。そして、元データと用いるアルゴリズムが同じであれば、同じハッシュ値が得られる点も特徴の1つである。入力される元データの値の長さに依存せず、ハッシュ値の長さは一定となる。一方で、異なる入力値から同じハッシュ値が生じないように、ハッシュ関数は設計されている。 もし、二つの文字列が同じならば、それをハッシュ化したものも同じになります。
そのため、ログインするときは、送信されたデータがデータベース内のハッシュ化されたIDとパスワードの組のどれかと一致するかを確認するだけでよいのです。
ハッシュ化のメリットは、不可逆なところです。
パスワードそのものを送信するわけではないので万が一通信が傍受されても、そこから復号はできません。一致する文字列を総当たりで探す方法しかとれないため、突破は現実的ではありません。
後述のサンプルコードを見つけた var hash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5,response.getContentText()).toString();
上記のサンプルコードについて検索をかけ出てきたサイト
どうやら「前回取得したハッシュ値と差分があれば、通知する」というやり方が主流のようである
テキストを取り出した上で、データの要約となるハッシュ値を計算し、前回のハッシュ値と異なれば、更新されたと判断してメッセージを送信する