2019-04-03

件のツイートタイムスタンプ

2016年7月13日19:41に下記のツイートがされている。

明治大正昭和平成令和

違和感いね

https://twitter.com/syaaaan_/status/753177564164653056

これがトリックだと仮定すると、すぐに思いつくのは、投稿日時をあとから書き換えるハックだと思う。

ところで、ツイッターURLタイムスタンプ情報を含む。

いくつかの解説記事によると、id は以下のような 64 ビット整数であるようです。

+--------------------+--------------------+-------------------+

timestamp (42 bit) worker-id (10 bit) sequence (12 bit)

+--------------------+--------------------+-------------------+

それぞれの意味は以下の通り。細かいことは snowflakeソースコード*2を見て確かめました。

sequence: 同じミリ秒枠内での衝突を回避するためのシーケンス番号(ミリ秒ごとに 0 リセット

worker-id: この id を発行したサーバ固有の番号 *3

timestamp: System.currentTimeMillis() - 1288834974657L の値。(2010-11-04 10:42:54 頃からの経過ミリ秒

上位ビットが timestamp なので、この番号はおおよそ時間順に増えていきます

https://mametter.hatenablog.com/entry/20160920/p1

ということでツイートURLが示す時刻を計算してみる。

1.タイムスタンプ関係ない下位ビット無視

753177564164653056÷2^22 = 179571524659 (ms)

2.ミリ秒を日に換算

179571524659 (s) = 2078.374128 (day)

3.2010/11/4 10:42:54 の 2078.374128日後を計算する。

エクセルだと、日付は1日が1なので、単に足し算すれば良い。)

結果は、……なんと2016/7/13 19:41になった!

ということで、ツイートURLタイムスタンプは一致していた。びっくりだ。

もし、ツイートタイムスタンプを後から改ざんすることで前述のツイート作成したとすると、タイムスタンプと同時にURL改ざんする必要がある。

(もしくは、タイムスタンプ改ざんするとURLも書き換わる仕様になっている必要がある。)

そんなことは可能なのだろうか。

識者によるトリック解説を待ちたい。

  • トリックじゃないに決まってる トリックなら同じことやる人間がたくさん出てくる

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん