ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

手作りネットプロトコル工房コミュのBASE16

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ご存知のとおり、 BASE64というのは、普通のバイナリ(0〜255)の値集合を、 A〜Z a〜z 0-9 と +/ の64文字を使って、3バイトを4文字で表す方法の事だ。

これを使おうと思って色々考えていたけど、多くのシステムでは大文字と小文字を区別しないので、BASE64は使えない。 そこで考えたのだけど、64文字も使わないで 0〜9A〜Z ぐらいで バイナリをエンコードする方式が出来るんじゃないかな... と思って考えてみた。

0〜9A〜Zだと 36文字しかない。 これに一番近い2の累乗は32だ。 つまり5ビット。 この考え方なら、ちょっと面倒くさいけど、任意の32文字を選んで 5バイトを8文字で表す方式が作れそうだ。 つまり、Base32じゃないか! すごい事思いついた! ... だけど、調べてみたら Base32 という一般的な方式が既にあるんだそうだ ... がっかり。


しかも、Wikiに面白い事が書いてあった。 英語版のWikiによると、ゲーム内のパスワードで使われてるのだそうだ。 あの、あれだ。 マリオランドのパスワードだ。 面をクリアするとパスワードが表示される。 体力の量が変わるとパスワードも変わる。 だからきっとちょっと変えてやると体力を増やしたり出来るかも! と思ってズルしてデタラメなパスワードを入れてもダメなやつ。 あれがBase32で出来ているんだそうだ。

面白いのだけど、文字の集合から母音を除く事でデタラメ入力に対して耐性を高めているんだそうだ。 絶妙なバランス!

http://en.wikipedia.org/wiki/Base_32

面白いなと思った。

僕はこのバレても大した損害が無いものに対しては、そこそこ頑丈な鍵を使うという「緩やかなセキュリティー」の考え方が好きだ。 よく、何でもかんでもガチガチに鍵をかけて、ひたすらシステムをガンコで使いづらい代物にするのが大好きな、技術オタクSEがよくいるけど、このマリオのつめの垢をせんじて飲ませてやりたい。 玄関の鍵はガッチリかけるけど、入り口の門の鍵は、あけようと思えばすぐ開けられる鍵でもかまわない。


というわけで、せっかく発明した BASE32は 世界中で一般的なものだった。 しかし、僕はあきらめなかった。 この延長上で4ビット=1バイトを2文字で表すBase16というエンコード方式だって考えられるじゃないか! コレは使える! すごい発見だ!


あなたはすごい発見だと思われるだろうか。 しかし、よく考えて欲しい。 人はこのエンコード方式を Base16と呼ばずに 「16進表示」と呼ぶことに。

つまり 0〜9A〜Fまでの16文字=4ビットを2文字で1バイトを表すわけで 0x12DFEAfA と書くのと同じわけだ。

実につまらない結論に到達。

コメント(0)

mixiユーザー
ログインしてコメントしよう!

手作りネットプロトコル工房 更新情報

手作りネットプロトコル工房のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング