読者です 読者をやめる 読者になる 読者になる

ふくらみ

膨張し続けている

はてなブログで記事にパスワードをかけて暗号化する

先日こういう記事を書きました。無駄に記事を暗号化してパスワードを入れないと見れないようにしてあります*1

fukurami.hatenablog.com

今回は、はてなブログ卑猥で変態的な記事を堂々と書きたい変質者予備軍の皆様向けに、こんな感じの暗号化された記事を簡単に作る方法を書いてみます。

とりあえずやり方

1.普通に記事を書きます。編集モードはなんでも良いです。
f:id:tfukumachi:20170208234148p:plain

2.記事の最後に次のコードを貼り付けます(見たままモードの人はHTML編集画面に移って下さい)。そのままコピペして下さい。

<p id="poge"><textarea></textarea><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<script>document.addEventListener("DOMContentLoaded",E=>{var d=$("div.entry-content").clone();d.find("a.keyword").before((i,e)=>e).remove();d.find("#poge").remove();
$("#poge>textarea").val(decodeURI("%3Cp%20id=%22moge%22%3E%3Cinput%20placeholder=%22input%20passphrase%22%3E%3Cbutton%3EDecrypt%3C/button%3E%3C/p%3E%3Cp%20id=%22plain%22%3E%3C/p%3E%3Cp%20id=%22encrypted%22%3E"+CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(d.html()),prompt("input passphrase")||"").toString()+"%3C/p%3E%3Cp%3E%3Cscript%20src=%22https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js%22%3E%3C/script%3E%3Cscript%3Edocument.querySelector(%22#moge%3Ebutton%22).addEventListener(%22click%22,e=%3E$(%22#plain%22).html(CryptoJS.AES.decrypt($(%22#encrypted%22).hide().text(),$(%22#moge%3Einput%22).val()).toString(CryptoJS.enc.Utf8)));%3C/script%3E%3C/p%3E"))});
</script></p>

3.プレビュー画面に移ります。パスワードを入れろというダイアログが出るので、何か入れます。
f:id:tfukumachi:20170208215052p:plain

4.記事の最後にテキストエリアがあるので、その内容をコピーします。
f:id:tfukumachi:20170208234209p:plain

5.編集画面に戻り、書いたものをすべて消し、コピーしたものを貼り付けます。
f:id:tfukumachi:20170208234225p:plain

6.おわり

完成したものがこちらになります。

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

何をしているのか

大したことはしていません。やっていることは、

  1. プレビュー画面の記事のHTMLを取得する
  2. はてなキーワード等不要なものを削除して抽出する
  3. CryptoJSというjavascriptライブラリを使ってAESで暗号化する
  4. 暗号文と復号用のHTMLをまとめて吐き出す

だけです。AESはアメリカで標準化された共通鍵暗号で、十分な桁の鍵*2を用意すれば文字通り一生の間破られないことになっています。

はてなブログのプレビュー画面で記事の中に書いたjavascriptが実行可能であるという仕様を悪用して実現しました。
はてなブログが要らんお節介をするのでわざわざエスケープかますなどしています。

はてなブログ専用のようなことを書いていますが、これは中でjQueryを使っているためです。実ははてなブログにはデフォルトでjQueryが読み込まれているので、それを利用しています*3。他のブログサービスで使いたいド変態の方はjQueryをcdnから読み込む感じのコードを付け足すなりすれば良いんじゃないかと思います。

変質者予備軍以外にもテロリスト予備軍とかエセ左翼暴力集団予備軍の皆様にもおすすめな気はしますが絶対に悪用しちゃだめだぞ!!!!

*1:見なくていいです

*2:規格上256bitが最大の鍵長なので、32バイトの文字列を用意するとよい

*3:但し、ページの最後で読み込まれているので、記事中に書いた<script>からは直接使えない。DOMContentLoadedイベント等の発火を待つのが良い。