Node.js
Electron

Electronで暗号化ツールを作りました。

More than 1 year has passed since last update.

今日は苦戦しました。
作りたいテーマがあって、素材を集めるにもそれほど時間が掛かりませんでしたが、なんと、nodejsの環境変数と苦戦しました。

作ったアプリ

Javascript crypto libraryを用いた暗号化ツール。
現時点はSHA-1のみ。
Encryption.png

いずれはSelectで変動的に適応します。
また、input typeもpasswordに替えるか、両方選べるようにするかと検討しています。

今後、markdownファイルの書き方や、release logをまめに書いておきたいため、気まぐれで機能を試すよりは、もう少し計画的に作りたいと思います。

とはいえ、今のReadmeは空っぽのまんまでした。
何を書くか?結構迷いますね~
それから、まぁ、何語で書くことも迷います。

出来上がるまで

ソースをみたら分かると思いますが、超シンプルなものしか書いていません。
現職もinputとsubmitを使った機能をたくさん作って来ましたので、Atomの仕組みとElectronの使い方などの理解と合わせて、出来上がるまでは3時間程度。

libraryは
https://github.com/brix/crypto-js
https://github.com/bitwiseshiftleft/sjcl
2つで迷っていましたが、最終的にsjclを選びました。
ドキュメントのまとまった感が気持ち良かったからです。
ただ、crypto-jsを使った書き方もできましたので、時間があったら、crypto版も作るかな…と思います。select機能を追加する時、cryptoの方が使い易そうです。

困ったこと

30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまでatom/electronを読んで、最終的にはデスクトップアプリにしたいと思いました。
asar と electron-packagerのインストールは素早く完成しましたけど、コマンドラインで実行するのはなかなかうまくいきませんでした。

心当たりはあります。

  • nodeは久しぶりに触ることだし、
  • 前はglobalとlocalがごちゃごちゃになった状態で、
  • 環境変数のPathがおかしいのままで放置していた状態です。

解決の糸口はnodeに違いないと思って、何度もpathを書き換え、
でも、上手くいかなくて、買物に行って戻ってから、思いっきりnodeを再インストールしようと決心しました。

環境変数をbackupして、node関連の全部削除し、nodeのinstallerをもう一回落とし、これは大変な作業になっていくのだろうと思いきや、意外とinstallerはサクサクと進んでくれました。(installerからは、すでに存在しています、一回uninstallしてくださいというような話は全くありませんでした。)

なんだ、早く再installすればよかった...

勉強になったこと

  • Batchファイルの仕組み
    C:\Users\ユーザー名\AppData\Roaming\npmのフォルダーにある、*.cmdファイルを覗いてみました。私の今の職務内容はあまりbatchファイルを作る機会がなくて、なかなか興味を持たずにいました。これを機に、少しは興味を満ち始めました。

  • 暗号化の種類
    前はJavaでMessageDigestを使ったことがあります。ただ、種類をあまり気にせずに変換したい形に指定していました。今回は変換の仕組みを知るためもう少し深くみました。次のバージョンにselect機能を追加する時に、package内の資料も詳しく書けるといいなと思います。

追記:http://www.movable-type.co.uk/scripts/sha1.html
ここはonlineで変換できます。私が使った2つのlibraryとは別で、試したことはないですけど、
暗号化に関する説明の仕方は結構気に入ってます。
機会があれば、暗号化について勉強して、ここでまとめをupしようかと考えています。
(どんどん課題が増えてきました...)

次のテーマ

Resembleを利用したツール。(logの出力など)
また、electronのmenu機能も活用したいです。