暗号規格のJavaScriptライブラリである「crypto-js」を用い、サーバサイドではなくクライアントサイドで復号化できる静的なパスワードで保護されたHTMLページを作成できるのが「StatiCrypt」です。使用される暗号化方式は「AES256」です。

Static HTML Crypto

https://robinmoisson.github.io/staticrypt/



使い方は簡単で、1番上の「Passphrase」にパスワード、「HTML/string to encrypt」に暗号化したいHTMLページのコードを入力し、青色の「Generate passphrase protected HTML」をクリック。その後、ページ最下部にある緑色の「Download html file with password prompt」をクリックすれば、パスワードで保護されたHTMLページが簡単に作成できます。



実際にどのようなものができるのかというと、以下のようなパスワードを入力しなければアクセスできないページが作り出されます。なお、パスワードを入力すれば元のHTMLページが表示されます。

Protected Page



「StatiCrypt」はブラウザ側で復号化できる静的なパスワードで保護されたHTMLページを作ることができます。生成されたページは静的コンテンツを提供する場所(例えばGitHubのページ)に送信またはアップロードするだけで、JavaScriptはパスワードとページを解読してHTMLページを読み込みます。

StatiCryptは基本的にページを暗号化するもので、新しいファイルにパスワードを適用するために必要な全ての方法が準備されているとのこと。AES256は最先端の暗号化方式ですが、総当たり攻撃や辞書攻撃を警戒してパスフレーズには難しい文字列を設定してくださいとのこと。

なお、StatiCryptのソースコードは以下のページで公開されています。

GitHub - robinmoisson/staticrypt: Password protect a static HTML page

https://github.com/robinmoisson/staticrypt