论坛首页 Java企业应用论坛

拍拍网的搜索关键字的编码与解码

浏览 15859 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-04   最后修改:2010-02-03
lichd 写道
刚刚看到你对淘宝编码 的研究,我个人认为淘宝那个编码可能是Base32规范的演化版,只不过淘宝使用0来代替=做末位填充,RFC 3548 (The Base16, Base32, and Base64 Data Encodings)
对这些都有规范

经过证实,lichd 的观点正确,由于我在本文发表之前,除Base64 之外,其他的BaseXX 都没接触过,所以不知道这个正是Base32 的效果。

 

不 过看官们请放心,本文的思路也和Base32 符合。但码表有所变化。当时的乱打乱撞,结果造了一个古人已经造好的轮子,实在惭愧。

 

因此,感谢lichd 的观点,从而稀释了我体内SB细胞的浓度。

 

 

回头看了一下本文的一个旧实现(codec.zip ), 一年前写得代码太糟糕了,不推荐。

现在提供一个相对不错的实现,>> 猛击获取<<

 

-------------------------- -------------------------- -------------------- ---------------------

------------------------------------------ 分割线 --------------------------------------------

-------------------------- -------------------------- -------------------- ---------------------

 

继“淘宝网的搜索关键字的编码与解码 ”之后,忽然间,脑袋一闪:“好像拍拍网对于搜索关键字的编码与解码的规则都是差不多的”。

然后马上跑去拍拍网,敲入:“gembler”,得出如下URL:

http://sse.paipai.com/s-p7vz42wppy3a--1-40-13---3-4-3----2-2--128-0.html

                                                    (看上面的:p7vz42wppy3a


是不是与淘宝网的长的差不多阿?答案是:“确实长的很像”。

 

大战300个回合中...


    既然长得像,那么游戏规则应该也是大同小异。。。

 

分析、研究完了,有结论了:


其实,就只有码表不一样,其他的,全都跟“淘宝网的搜索关键字的编码与解码 ”一样,OK!我们来看看码表的变化。

上文 中用的码表是由: [ a-z , 2-7 ]          组成的。
而现在,是由:            [
a-c , g-z , 1-9 ]  组成的。


                 oh! gee · ·· 就多了 [1 , 8 , 9 ] ,然后干掉了 [ d-f ]


上文的码表:

 

private final static String CODEC_TABLE = "abcdefghijklmnopqrstuvwxyz234567";

 

a b c d e f g h i j k l m n o p q r
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

 

-------------------------------愚蠢分割线---------------------------------

 

s t u v w x y z 2 3 4 5 6 7
18 19 20 21 22 23 24 25 26 27 28 29 30 31

 
现在的码表:

private final static String CODEC_TABLE = "abcghijklmnopqrstuvwxyz123456789";

 

a
b
c
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

 

-------------------------------愚蠢分割线---------------------------------

 

v
w
x
y
z
1
2
3
4
5
6
7
8
9
18
19
20
21
22
23
24
25
26
27
28
29
30
31

 

OK!测试一下,这里使用上文 提供的 Source Code 中的 main(String[] args) 来测试:

 

测试结果:

      输入:JavaEye论坛频道
      输出:

        original: JavaEye论坛频道
        encode: mmt1p2nisiv6iz8pzsgooqra
        decode: JavaEye论坛频道

      然后跑去拍拍网敲入"JavaEye论坛频道 "搜索。

      得出:

      http://sse.paipai.com/s-mmt1p2nisiv6iz8pzsgooqra --1-40-13---3-4-3----2-2--128-0.html

      比较一下:

        mmt1p2nisiv6iz8pzsgooqra - console输出
        mmt1p2nisiv6iz8pzsgooqra - 拍拍网URL


说明两点:

    1.其实这种规则只是在Base64上进行改造,不是原始的Base64。
    2.可能这两个贴子出了以后,淘宝网和拍拍网的那个规则可能会有所变动,
      所以以后拿着我上文 提供的Source Code去执行的结果,跟他们俩比较,不一定会准确。

对Source Code有兴趣的Javaeyer们,可以点击下载 ,又或者到“淘宝网的搜索关键字的编码与解码 ”里下载。

 

    PS:这是个人观点,如与拍拍网的相符,纯粹巧合

 

完事了······(腰酸背疼ing...)

   发表时间:2008-12-04  
PAIPAI明显是抄袭啊, 哈哈
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
谁抄谁就不下定论了,这东西本身就是互相借鉴的,不过有竞争才会有进步。
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
gembler 写道
谁抄谁就不下定论了,这东西本身就是互相借鉴的,不过有竞争才会有进步。

居然又写了一篇。。。以前淘宝url是这样吗?不记得了。。。我刚试了ebay和当当都不是这样,难怪淘宝厉害,细节都考虑的比较周到
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
xuyao 写道
难怪淘宝厉害,细节都考虑的比较周到


看淘宝今天的成果就知道,细节决定成败
事实上他很多东西确实做得很细腻。
0 请登录后投票
   发表时间:2008-12-04  
有什么好处呢?
0 请登录后投票
   发表时间:2008-12-04  
这玩意,没什么秘密可言.知道了也无妨.目的不是为了加密.所以你文章写的再清楚,我想他们也不会修改实现的
0 请登录后投票
   发表时间:2008-12-04  
gembler 写道

继“淘宝网的搜索关键字的编码与解码”之后,忽然间,脑袋一闪:“好像拍拍网对于搜索关键字的编码与解码的规则都是差不多的”。

然后马上跑去拍拍网,敲入:“gembler”,得出如下URL:

http://sse.paipai.com/s-p7vz42wppy3a--1-40-13---3-4-3----2-2--128-0.html

                                                    (看上面的:p7vz42wppy3a


是不是与淘宝网的长的差不多阿?答案是:“确实长的很像”。

 

大战300个回合中...


    既然长得像,那么游戏规则应该也是大同小异。。。

 

分析、研究完了,有结论了:


其实,就只有码表不一样,其他的,全都跟“淘宝网的搜索关键字的编码与解码”一样,OK!我们来看看码表的变化。

上文中用的码表是由: [a-z , 2-7]          组成的。
而现在,是由:            [
a-c , g-z , 1-9]  组成的。


                 oh! gee ··· 就多了 [1 , 8 , 9 ] ,然后干掉了 [ d-f ]


上文的码表:

 

private final static String CODEC_TABLE = "abcdefghijklmnopqrstuvwxyz234567";

 

a b c d e f g h i j k l m n o p q r
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

 

-------------------------------愚蠢分割线---------------------------------

 

s t u v w x y z 2 3 4 5 6 7
18 19 20 21 22 23 24 25 26 27 28 29 30 31

 
现在的码表:

private final static String CODEC_TABLE = "abcghijklmnopqrstuvwxyz123456789";

 

a
b
c
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

 

-------------------------------愚蠢分割线---------------------------------

 

v
w
x
y
z
1
2
3
4
5
6
7
8
9
18
19
20
21
22
23
24
25
26
27
28
29
30
31

 

OK!测试一下,这里使用上文提供的 Source Code 中的 main(String[] args) 来测试:

 

测试结果:

      输入:JavaEye论坛频道
      输出:

        original: JavaEye论坛频道
        encode: mmt1p2nisiv6iz8pzsgooqra
        decode: JavaEye论坛频道

      然后跑去拍拍网敲入"JavaEye论坛频道"搜索。

      得出:

      http://sse.paipai.com/s-mmt1p2nisiv6iz8pzsgooqra--1-40-13---3-4-3----2-2--128-0.html

      比较一下:

        mmt1p2nisiv6iz8pzsgooqra - console输出
        mmt1p2nisiv6iz8pzsgooqra - 拍拍网URL


说明两点:

    1.其实这种规则只是在Base64上进行改造,不是原始的Base64。
    2.可能这两个贴子出了以后,淘宝网和拍拍网的那个规则可能会有所变动,
      所以以后拿着我上文提供的Source Code去执行的结果,跟他们俩比较,不一定会准确。

对Source Code有兴趣的Javaeyer们,可以点击下载,又或者到“淘宝网的搜索关键字的编码与解码”里下载。

 

    PS:这是个人观点,如与拍拍网的相符,纯粹巧合

 

完事了······(腰酸背疼ing...)

 

 

楼主吖楼主....你真喺越来越犀利..(好似一路以来都喺咁样啵。。。)

 

继续努力奋斗....

 

PS:话是话。。好耐无同你一齐去劈酒咯窝......

0 请登录后投票
   发表时间:2008-12-04  
coolzyx 写道
楼主吖楼主....你真喺越来越犀利..(好似一路以来都喺咁样啵。。。)
继续努力奋斗....
PS:话是话。。好耐无同你一齐去劈酒咯窝......


多谢捧场哦。。。

coolzyx 写道

PS:话是话。。好耐无同你一齐去劈酒咯窝......


约个时间啦!
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
dogstar 写道
这玩意,没什么秘密可言.知道了也无妨.目的不是为了加密.所以你文章写的再清楚,我想他们也不会修改实现的


哈哈...确实是没什么秘密可言 :)
我的目的也不是要他们做些什么,而是兴趣研究,然后又结果了,就分享出去,大家一起讨论。 :)

上面也说了:
gembler 写道
这东西本身就是互相借鉴的

希望通过互相借鉴,大家一起进步
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics