Ask HN: What hashing algorithm does goo.gl use?

2 points by richardg ↗ HN

6 comments

[ 3.3 ms ] story [ 24.1 ms ] thread
I assume they're just random numbers encoded in "base 62" or similar.

http://birdhouse.org/blog/2010/10/24/base62-urls-django/

It would be base72; they use all the lowercase numbers, all the uppercase numbers, and all the digits.
How is it base72?

  A-Z = 26
  a-z = 26
  0-9 = 10

  26 + 26 + 10 = 62
derp. The GP's page said "... goal page URIs consisting of characters from this set:

    BASE62 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
I missed the numbers in the middle. How embarrassing. Time to get offline...
It's not a pure hash; the same URL can be used many times to generate independent URLs. Using only the input of 'http://google.com generated the following URLs in a brief test:

    aw9RP    fzUmL    n4UNp    V0Nre
    AYp1X    OFw3w    oQnRL    RyICJ
    eMioQ    sUcjC    mzmKE    i8NyH
    42R3d    9XYcV    6KpEd    TCve2
    tzNUd    pRMdn    QbmDx    WYaqH
    Ju74J    gqmYd    kilG8    AFe1P
    HiyI8    uqJal    qj5mZ    MzzwK
    WU8tK    QJlwz    vEqhL    1hdpl
    bBWCx    CQgWq    3avus    m8S7A
    ufJ4v    YBlWF    7T4cX    1ypMQ
    8zgUA    Sslwf    9HTDt    7t8ji
    AqedO    qyJNj    6rdR4    zRzcv
    0wkJ9    Zmf4l    rV5aK    af7cE
    ix0TO    bvNbb    p4cKS    m3vjc
    SXAnj    DcLA2    JRwiP    IdTQK
It's likely not hash at all, just a unique identifier.