PolyCryptはJavaScript製、BSD Licenseのオープンソース・ソフトウェアです。

HTML5で策定が進んでいる仕様の一つにWebCrypto APIがあります。これはWebブラウザの標準機能として暗号化を提供するものです。しかし実際に実現するにはまだしばらく時間がかかるでしょう。そこで使ってみたいのがPolyCryptです。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.07_thumb.1374590740.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.07.1374590740.png)
デモです。入力と暗号化しての出力、そして復号化が行われています。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.15_thumb.1374590744.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.15.1374590744.png)
SHA-256のハッシュ値を算出するデモです。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.57_thumb.1374590748.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.39.57.1374590748.png)
メールアドレスとパスワードを指定して、PEM/P12の証明書を出力するデモです。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.40.10_thumb.1374590751.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 10.40.10.1374590751.png)
ダウンロードするとちゃんと証明書になっています。

PolyCryptはWebCrypto APIのJavaScript実装です。Androidのデフォルトブラウザ、Opera Mini、IE10未満では動作しませんのでご注意ください。先進的な機能を先んじて試してみたい方はぜひ。

MOONGIFTはこう見る

Webブラウザで暗号化と言えばSSLが有名ですが、WebCrypto APIが標準化されればJavaScriptレベルでも暗号化されたデータの授受が行えるようになります。証明書用のファイルまで作成できてしまうのが驚きです。

JavaScriptでできるならAPIにする必要がないと思ってしまいますが、ブラウザで標準サポートされているかどうかの違いは大きいです。よりセキュアなWebサイト実現に向け、登場の待たれるAPIです。

PolyCrypt Samples

polycrypt/polycrypt