タグ

uuidとeduに関するkoma_gのブックマーク (4)

  • UUIDとULIDを理解していない方は見た方がいい記事

    Auto increment(自動採番)型を採用したくない場合 Auto Incrementは、データベースにおいて自動的に一意の識別子を生成するメカニズムです。通常、数値型の列が対象となり、新しいレコードが挿入されるたびにその列の値が自動的にインクリメントされます。典型的なIDですかね。 ここでは一意性の確保の話や、データ移行やバックアップのデメリットには言及せず、セキュリティとプライバシーの懸念にフォーカスして考えます。 予測可能性 Auto Increment型のIDは連番であるため、次に生成されるIDが容易に予測可能です。これにより、攻撃者がシステムの内部構造を推測し、不正アクセスを試みるリスクが高まります。 情報漏洩のリスク 連番のIDはデータベースの挿入順序を反映しているため、公開されることで企業の活動パターンやデータ生成の頻度が漏洩する可能性があります。 例) 競合他社は、公

    UUIDとULIDを理解していない方は見た方がいい記事
  • 誕生日の問題とユニークな識別子

    誕生日は $N = 365$ 通りあります。$n$ 人($n < N$)がパーティを開きました。誕生日が同じ人がいる確率は \[ 1 - \frac{365}{365} \times \frac{364}{365} \times \frac{363}{365} \times \cdots \times \frac{365 - n + 1}{365} \] です。次の近似式でも計算できます(証明は例えばWikipediaの Birthday problem 参照): \[ 1 - e^{-n^2/(2N)} \] Pythonで試してみましょう: import matplotlib.pyplot as plt import numpy as np a = [] p = 1 for i in range(366): a.append(1 - p) p *= (365 - i) / 365 x

  • UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita

    お手軽にランダムなIDを取得したい時にUUIDはとても重宝します。 でもたまに、 「このID(UUID)ってぶつかることない?対策しなくて大丈夫?」 と聞かれることがあります。 それに対して、 「ウィキペディア先生がぶつからねえって言ってたから大丈夫だよ!(#゚Д゚)」 で切り抜けるのもそろそろ限界のような気がするのでちゃんと調べました。 (もちろんウィキペディア先生を頼りました!) 2つの理論 UUIDの衝突確率について考える上で次の2つの理論が重要になります。 鳩の巣原理 誕生日のパラドクス 鳩の巣原理 鳩の巣原理とは、 m個の入れ物にn個のものを入れるとき、n > m ならば少なくとも1個の箱には2個以上のものが入る 9個の巣箱に10羽の鳩が入る場合、必ずどれかの巣箱には2羽以上入ることになるということです!(ウィキペディア先生) 考えれば当たり前のことですが同様にして考えれば、 「

    UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita
  • 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama

    いろいろなソフトウェアで、大きいランダムな値をユニークな値とみなすということが行われている。例えばユニークな識別子としてよく使われるUUIDはただの122ビットの乱数だ。gitもSHA-1ハッシュ値が160ビットの乱数のように扱えることを期待して、それをユニークな識別子として使っていた。実際にはランダムな2つの値が同じになる確率はゼロではないのに、なぜこれが安全なやり方だと言えるのだろうか? それについてちょっと説明してみよう。 あるシステムが、乱数で生成された識別子の衝突のなさに依存しているとして、仮に衝突が発生した場合、相当悪い結果、例えば復旧不可能な形でデータベースが壊れてしまうとしよう。これはどれくらい危険なのだろうか? 数学の問題で、学校のクラスの中で同じ誕生日の人が1組以上いる可能性は思ったより高いという話を聞いたことがあると思う。あるランダムに生成された値が衝突する確率という

    十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama
  • 1