ニコニコ動画およびニコニコ生放送の184についての考察
こんばんは、妄想大好きゾロンです。
エロい妄想もいいですが、今回はニコ動およびニコ生の184について考察(という名の妄想)を書いてみます。
たぶん誰でもすぐ思いつく内容なのでみなくてもまったく問題ないです。
184から生IDがわかる内容ではないので、184特定しちゃるとどっかから飛んできた人は残念でした。
あと読む人は、だらだら長く書いてるので頑張って読んでね。
普段、ニコ生みてるときに知らない放送は184でコメントする私ですが、ふと184ってどうやってできるのかに疑問を持ちました。
そこで、ニコ生廃人(見る専門)の私が考える、184ハッシュはこうやって生まれるであろう仕組みの妄想を書いてみた。
ニコ生メインで考えてたので、ニコ動の情報はオマケです。
まず、184の説明は省きます。
ニコニコ大百科とかそこら辺みてください。
次に184の特性を考えます。
ざっくりと調べた184特性は以下の通り
1.運営には184から生IDがわかる…と思う
2.毎週木曜日朝9時にリセット
3.同じコミュニティなら違う放送枠でも184は同じ
4.ハッシュは大文字小文字数字および記号がある
はい、だれでも調べたらわかる内容はこんな感じです。
上の内容書いてるときにハッシュについてもまとめて書こうと思ったけど、見てる人がわからなくなるので分けてみた。
次に上の特性とからめて、184のハッシュがどうやって算出されるかについて妄想を膨らませてみた。
ちょっとコンピュータ知識が必要になります。
が、ちょっと待って欲しい。
さすがに闇雲に妄想するのはしんどいので、ここで実際に放送内で流れた184について見てみよう。
実際の情報を元に考察するのは大事
これをみてわかったことは、アルファベットの大文字、小文字、数字、ハイフン(記号)が入ってるのがわかる。
D-3r4Js9-TcuNxDz_ePoyNRe26k
Bx2Te8yzPtlMeHr4RnaDDt7coOU
yYoxwbyUkIBtQ1nTXrzjIIPTagI
さらに言うと、これはすべて27桁である。
私は、たかが184IDに運営が面倒くさい処理はしないだろうという前提で考えてみました。
ということは、これと同じようなハッシュを算出するアルゴリズムがあるだろうと決めうち。
はい、ありましたSHA-1です。
正確にはBx2Te8yzPtlMeHr4RnaDDt7coOU=というように、最後に「=」がつくんだが、そこは省いたようです。
SHA-1で使われる文字はアルファベットA-Za-Z0-9および+と/です。
ただし、「/」を184IDで見たことがなく、上の例のように「-」があることから「/」は「-」に置き換えてると考えました。
この考察から、上の特性4を書きました。
ここから、184IDはSHA-1で算出してる前提で妄想していきます。
特性1の運営は184IDから生IDがわかるです。
SHA-1を使ってる時点で、逆算はほぼ不可能です(脆弱性とかそういう話は今回はなしで)。
じゃあなんでわかるんだよってわけなんですが、おそらくデータベース非公開部分に生IDとセットで記録されてるからわかっちゃうんです。
だから一般人にはわかりません。
特性2は、週1で変わるということはそれに関する文字列がハッシュ元の文字列に入ってるだろうということです。
いままでと文字列が被らず、かつ週ごとに変わることを考えると「西暦+週番号」が入ってる可能性が高いです。
ただし年月日とか年月週とか年週とか被らない作り方は他にあるので断定はできません。
朝9時に変わるのはサーバー上の設定の話なので、どんな文字列が付加されるのかは未知数
特性3について
これは、ハッシュ元の文字列にコミュニティ番号が入ってるということです
ただし、文字列に「co」が入ってるかどうかはなんともいえない
あと特性ではないけど、運営は負荷をかけたくないので複雑な処理はしたくないだろうと
SHA-1を繰り返し処理することでハッシュ強度をあげることもあるが、ニコ生でコメントするたびに1万回もハッシュ化を繰り返すかといえばしないだろうと。
なので多くて1,000回くらいと思う。
以上から、もし184IDを算出するなら以下の文字を組み合わせてSHA-1で算出する
使うだろう文字列はコミュ番号、見る人のユーザーID、年、月、日、週番号の組み合わせ。
出てきたハッシュをまたSHA-1に入れる作業を最大1,000回くらい繰り返す
という予測のもと、100万通りくらいプログラムで検索してみたんですが、まったくヒットしませんでした。
この記事をみて、いやここはこういう解釈だろ!っていう人はぜひ解析にチャレンジしてみてください。
184特定したところで、ニコ生主しかメリットないのが残念です。
危うく書き忘れる所でしたが、もしニコ動の184を解析してみたい人は上の使う文字列は
動画投稿者ID、コメント投稿者ID、固定文字列の3種類だと思います。
同じ動画投稿者だと184は全部同じらしいので、こっちのほうが組み合わせとしては算出しやすいかもしれません。
動画の解析結果がわかれば実装方法からニコ生の184もわかるかも?