2022-08-14
不可逆な変換、ハッシュ関数。暗号学で十分に検証され、電子署名やファイルの改竄検出、Internet3のIPアドレスなど、サイバー空間における重要技術です。この技術をそのまま開示できないデータに適応し、データ連携に応用します。


「csvhash (CSVの指定項目SHA256ハッシュ化変換)」
src on GitHub
ハッシュ関数は、「CRYPTREC暗号の仕様書」に掲載されているSHA-256(SHA-2の一種)を使用(次世代のハッシュ関数、SHA-3は候補として掲載されています)。


例えば、左のようなメールアドレスが"mail"という項目名で記載されているCSVファイルを、csvhashに通すと、左のように64文字のハッシュ化されたCSVファイルに変換されます。ハッシュ関数は一方向で一致するので、元のデータが同じであれば、ハッシュ化された文字列も一致します。 項目名は自由に設定可能なので、任意の項目を変換できます。


「code4fukui/SHA256」

SHA-256は様々な環境で変換可能です。例えば、今回使ったのはJavaScript用API「Web Crypto API」がブラウザや、Deno上で使用可能です。C#、Python、Ruby、PHPでの実装方法へのリンクを記載しているので参考にしてください。


「Third Party Modules | Deno」

ブラウザやDenoで使えるESモジュールは、GitHub Pagesやどこかのウェブサーバーに置いておくだけでいいのでお手軽ですが、より知ってもらうにはDenoのレジストリ deno.land/x に登録することもできます。

モジュール名には英字大文字やハイフンが使えず、かぶっていたらNGなので、この登録画面からWebHooks用のURLは生成するのが良いです。名前が決まったら、GitHubのリポジトリの設定、WebHooks、add WebHook、URLを指定、application/jsonに変更、トリガーを「Let me select individual events.」にして「Branch or tag creation」をチェックし、「Pushes」を外し、「Add webhook」。続いて、Releasesで「v1.0.0」などリリースタグを付けてリリースすれば、連携完了!


「sha256_es@v1.0.0 | Deno」

無事、登録できました!
import { SHA256 } from "https://code4fukui.github.io/SHA256/SHA256.js"; await SHA.digest("abc"); に加え、下記の用に使うこともできるようになりました。 import { SHA256 } from "https://deno.land/x/sha256_es@v1.0.0/SHA256.js"; await SHA.digest("abc");

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS