MiscItems/2008-05-24

解密 dianping.com 的坐标

http://blog.wensheng.com/2008/04/decoding-dianpingcom-google-map-latlng.html

Wensheng <[email protected]>
reply-to        [email protected]
to      python-cn`CPyUG`华蟒用户组 <[email protected]>
date    Sat, May 24, 2008 at 6:00 AM
subject [CPyUG:52307] 解密点评地图坐标

点评用谷歌地图,但是给地图坐标加了密。我不知道这样做是为了什么。因为你必须在浏览器里解密,所以研究下代码,很容易就解了密。这里给出解密代码,是用python写的。

   1 #digi=16
   2 #add=10
   3 #plus=7
   4 #cha=36 #
   5 
   6 def tostr36(i):
   7     s = ""
   8     d = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   9     while 1:
  10         r = i % 36
  11         s = d[r] + s
  12         i = i/36
  13         if i==0:break
  14     return s
  15 
  16 def decode(s):
  17     c = -1
  18     d = 0
  19     e = ''
  20     g = ord(s[-1])
  21 
  22     for i in range(len(s)):
  23         h=int(s[i],36)-10 #add
  24         if h>=10: h=h-7 #plus
  25         e += tostr36(h)
  26         if h>d:
  27             c=i
  28             d=h
  29 
  30     j = int(e[0:c],16)
  31     k = int(e[c+1:],16)
  32 
  33     l = (j + k - g) / 2
  34     m = (k - l) / 100000.0
  35     l /= 100000.0
  36     if l>180:l -= 360
  37     return l,m
  38 
  39 if __name__ == "__main__":
  40     import sys
  41     #print decode("HERUCVZVVIGID")
  42     print decode(sys.argv[1][:-1])


反馈

创建 by -- ZoomQuiet [2008-05-23 23:43:02]

MiscItems/2008-05-24 (last edited 2009-12-25 07:16:01 by localhost)