MTでMD5を扱う3つの方法
関連エントリーを書きました。(2009年11月19日)
del.icio.usのブックマーク数とPermalinkの話でも|linker journal|linker
/journal/2009/11/deliciouspermalink.php
みなさん、こんにちは、まーひーです
顔面麻痺も大分治ってきたような気がします。
再来週病院に行く頃にはもう普通に笑えるようになってそうな。。。
MD5ってご存じですか?
SBMのブックマーク数とかを取得する方法は色々あるかと思います。
del.icio.us内の個別ページはpermalinkをMD5に変換する必要があります。
MD5とは?
MD5とは
MD5(エムディーファイブ、Message Digest Algorithm 5)とは、与えられた入力に対して128ビットのハッシュ値を出力するハッシュ関数である。
MD5 - Wikipedia
http://ja.wikipedia.org/wiki/MD5
ということらしいです。
del.icio.usのブックマーク数を取得したいと思うまで知りませんでした。
MTのEntryPermalinkとかをMD5ハッシュに変換するして出力できればいいんですが、それは標準では用意されていないようですね。
del.icio.us内のpermalinkはMD5ハッシュに変換されているようなので、のページは
http://del.icio.us/url/
ではなくて
http://del.icio.us/url/<をMD5ハッシュに変換したもの>
になります。
http://delicious.com/url/5b6dba3acf54ea5c84b94cb3fd20c90b
がそのページのようです。
ではそのMD5ハッシュするにはどうするか?ということで
- MTのプラグインを使う方法
- PHPを使用する方法
- JavaScriptを使用する方法
の3つの方法があります。
プラグインを使って
解決策の1つとしてプラグインが用意されているようです
Movable TypeのMD5フィルタ・プラグイン/楽
http://tech.bayashi.jp/archives/entry/movabletype-plugin/2008/002062.html
で紹介されていますが、このプラグインを使うことでMD5ハッシュに変換が可能なようです。
PHPを使って
PHPにはMD5を扱う関数が用意されています。
PHPリファレンス(crypt()、md5()、sha1()、str_rot13())
http://www.php-ref.com/bapi/02_crypt.html
なので、
<?php $url="<mt:EntryPermalink>"; echo 'href="http://del.icio.us/url/' . md5($url) ; ?>
こんなかんじにすればMD5化されたものが出来ます。
JavaScriptを使う方法
PHPが使える場合は、上記の方法が良いかと思いますが、PHPが使えない場合は他の方法が必要になります。
その1つとしてJavaScriptを使った方法を。
JavaScript++かも日記: 【暗号】md5.jsをPHPのmd5()と並べてみる
http://jsgt.org/mt/archives/01/000301.html
で紹介されていますmd5.jsを使ってみたいと思います。
その場合はmd5.jsを読み込んでおいて
<script type="text/javascript"> url = MD5_hexhash('<mt:EntryPermalink />'); document.write("http://del.icio.us/url/"+url); </script>
こんな感じでやってあげると良さそうです。
ということで、MD5を使わないといけないというまれな場合に遭遇したらこんなのもあったよな〜、と頭の片隅にでも。