DayOne の Windows クライアントを開発している際のメモを記す。
本日は Dropbox に保存される DayOne のファイル名について。
以前のエントリ(DayOneのWindowsクライアントが欲しい)でも書いたが、
DayOne はこんな感じのファイルで保存される。
51FE045447B2D3584B83D6EC2D5B89E1.doentry
(32文字の文字列).doentry
doentry は DayOneENTRY の略だろう。
32文字の文字列は、何かのハッシュ値だと思われるが、何かはわからない。
16進数で32桁なので、16byte(128bit)のハッシュ値である。
128bitを出力するハッシュ関数といえば、有名なMD5がある。
MD5(エムディーファイブ、Message Digest Algorithm 5)とは、与えられた入力に対して128ビットのハッシュ値を出力するハッシュ関数である。
via: MD5 – Wikipedia
何かを入力として、MD5を使えばDayOneのファイル名は生成できる。
単純にいくと現在時刻といったところか。
ミリ秒まで使って、できるだけ衝突しないようにする。
C#でのMD5の使い方は以下のサイトを参考にした。
MD5やSHA1などでハッシュ値を計算する: .NET Tips: C#, VB.NET
現在時刻の文字列については以下。
また、DayOne のファイル名のアルファベットはすべて大文字なので、
MD5で出力された文字列に含まれるアルファベットを大文字に変換する必要がある。