前回は、みんな大好きMD5ハッシュでした。しかしセキュリティ的にはヤバイので、今回は「大丈夫な筈」のSHA-256ハッシュです。当然Node-RED上で計算に対応したノードも多数あるのですが、前回のMD5同様、msgを流し込めば何も設定せずともSHA-256になって出てくるノードをインストールしてみました。お楽?
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはRaspberry Pi 3 model B+のRaspberry Pi OS(32bit)上にインストールした以下を使用しています。
-
- Node-RED v2.0.5
SHA-256
SHA-256は、SHA-2アルゴリズムの「ハッシュ長256ビットバリュエーション」ということで良いですかね。米国連邦政府の開発、そして連邦政府が特許を取得していて無償で公開していただいておると。現在広く使われており日本国政府御推奨でもあるみたい。
そんなハッシュ関数のNode-REDにインストール可能な計算ノードは多数存在しております。その中で今回使わせていただきましたのは、以下です。
node-red-contrib-cryptography 0.0.4
上記はSHA-256だけでなく、一部で「大人気の」RIPEMD-160にも対応しているcontribなノードです。MITライセンスね。今回は政府御用達の方のSHA-256のみ使用させていただきます。
インストール
パレットの管理メニューから以下のように hash で検索かけると大量に候補が見つかります。その中で node-red-contrib-cryptography の「ノードを追加」ボタンを押せば、インストールは一発でやんす。
インストール後、パレットを眺めると、Cryptoという新たなカテゴリが出来ており、その中にSHA-256とPIPEMD-160のノードが鎮座してます。こんな感じ。
前回のMD5が、機能カテゴリの片隅にちんまりと現れたのに比べると行き方の違いを感じますな。できれば同じところに同じ色で並べたかったケド。。。
今回実験のフロー
今回実験のフローは、前回MD5の実験に使ったフローの横に相乗りです。左側のInjectノードから平文で”Hello World.”がやってくるので、それをハッシュにして後続のDebugノードで観察するだけ。
実行結果とその確認
以下は「Hello World.」と末尾のピリオドありのバージョンの結果です。上がMD5、下がSHA256です。
上のMD5の方は、元の文字列がpayloadに乗ったままで、計算したMD5値は、md5というプロパティを新設してそこに乗ってます。一方下のSHA-256の方はpayloadを書き変えてそこにハッシュ値が乗ってます。オブジェクトをみただけではSHA-256なのかどうかは分かりませぬ。
2つのノードに一長一短ありかと。contribの別ソースなので行き方に違いあり~の。
一応、Linux上で同じ文字列に対してSHA-256を生成してみました。こんな感じ。
計算はあってるみたい。あたりまえか。