Форум сайта python.su
import urllib, urllib2, cookielib cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) headers = { 'Origin': 'https://auth.mail.ru/cgi-bin/auth', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0', 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'keep-alive', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Referer': 'http://mail.ru/' } values={ 'login':'*******', 'domain':'mail.ru', 'password':'*******' 'new_auth_form=1' 'saveauth=1'} data = urllib.urlencode(values) req = urllib2.Request('https://auth.mail.ru/cgi-bin/auth', data, headers) response = opener.open(req) print cj
<cookielib.CookieJar [ <Cookie mrcu=E51953380019369DF3BE3E23786D for .mail.ru/> ]>
Cookie: mrcu=E4585337274522DE30C41C29895E; p=swAAAE13WAAA; VID=3alUcL0bw1XC:; s=s_vpиз всего этого меня интересует только1112/855); searchuid=815940501394344565; Mpop=1393412832:0444574441040106190502190805001b0a031d06014568515c455f060d0a09091f07027b16595d5c525f505641426b4050434545195f53515517434c:********@mail.ru:; ssdc= + еще пара строк
Mpop=1393412832:0444574441040106190502190805001b0a031d06014568515c455f060d0a09091f07027b16595d5c525f505641426b4050434545195f53515517434c:********@mail.ru
Пакет дополнительно шифруется по алгоритму RSA. Ключ состоит из следующих частей: B = 1024, E = 65537, N = передается в пакете Init. Вместе эти 3 части составляют целый RSA ключ.Ключ N получил, все норм (надеюсь), там код на С, но я переписал его на Python, было бы не плохо если бы кто проверил
void unscrambleMod( char *n ) { typedef unsigned char byte; int i; // step 4 xor last 0x40 bytes with first 0x40 bytes for( i=0; i<0x40; i++ ) { n[0x40 + i] = (byte)(n[0x40 + i] ^ n[i]); }; // step 3 xor bytes 0x0d-0x10 with bytes 0x34-0x38 for( i=0; i<4; i++ ) { n[0x0d + i] = (byte)(n[0x0d + i] ^ n[0x34 + i]); }; // step 2 xor first 0x40 bytes with last 0x40 bytes for( i=0; i<0x40; i++ ) { n[i] = (byte)(n[i] ^ n[0x40 + i]); }; for( i=0; i<4; i++ ) { byte temp = n[0x00 + i]; n[0x00 + i] = n[0x4d + i]; n[0x4d + i] = temp; }; };
def decrypt_rsa_key(enc_key_n): n = bytearray(enc_key_n) for i in range(0x40): n[0x40 + i] ^= n[i] for i in range(4): n[0x0d + i] ^= n[0x34 + i] for i in range(0x40): n[i] ^= n[0x40 + i] for i in range(4): n[i], n[0x4d + i] = n[0x4d + i], n[i] return bytes2number(n)
Формат для ревизии 0xc621:Прочитав о РСА на вики понял что шифровать надо так:
00
00 00 00 00 … // Начало массива из 128 байт содержащих логин и пароль, и шифрующихся по алгоритму RSA
… (байты 94-107) // строка содержащая логин. Имеет длинну 14 байт и храниться в формате ASCII а не UNICODE !!!
… (байты 108-124) // строка содержащая пароль. Имеет длинну 16 байт и храниться в формате ASCII а не UNICODE !!!
… 00 00 00 00 // не используется. Конец массива
auth_data = struct.pack('<94x14s16s4x', ACCOUNT, PASSWORD) auth_data = number2bytes(pow(bytes2number(auth_data),65537, rsa_key_n))
<HTML><TITLE>Test</TITLE> <head><meta http-equiv="Content-Type" content="text/html;charset=cp1251" /></head> <BODY> <H1 align=center>Главная страница:</H1> <FORM method=POST action="/cgi-bin/mainPage.py"> <P><TABLE border cellpadding=3 align=center> <TR> <TH align=right>Ф.И.О. абонента: <TD><input type=text name=abon_fio required value=%(abon_fio)s> <TR> <TH align=right>Номер телефона: <TD><input type=tel name=abon_mphone required value=%(abon_mphone)s> <TR> <TD colspan=1 align=center> <input type=submit name=action style="width: 100" value="Сохранить"> </TABLE> </FORM> </BODY> </HTML>
myfrm = cgi.FieldStorage() fio=myfrm["abon_fio"].value tel = myfrm["abon_mphone"].value action = myfrm["action"].value
print(action)
[Sat Mar 29 14:32:22 2014] [error] [client 127.0.0.1] UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to <undefined>\r, referer: http://127.0.0.1:8080/cgi-bin/mainPage.py
rule.StartEvent.MessageContent[0].value
boolean(//SimpleItem[@Name="window" and @Value="1"]) and boolean(//SimpleItem[@Name="motion" and @Value="1"])
<ns0:MessageContent Dialect="http://www.onvif.org/ver10/tev/messageContentFilter/ItemFilter">boolean(//SimpleItem[@Name="window" and @Value="1"]) and boolean(//SimpleItem[@Name="motion" and @Value="1"])</ns0:MessageContent>
19:04 ~$ curl -X POST -d "grant_type=password&username=admin&password=123" http://tygkDGuF.re@HmpJB!G=oi5pHtbgxW96I9w8iTd0:zFpyRXwgUKglYAs6b=v8UwlA3qqxZr!=hn3PgzQQ5CgO=OVR-O26reO;T8xcn;xcurcbC7kPr8r-York9TIEKKEM6EFRUOhR:oU!=S3A;QQ1pmAK8dNso48KfYNgYO_F@http://127.0.0.1:8080/api/words/
bash: !G=oi5pHtbgxW96I9w8iTd0: event not found
my_image = Image.open(unicode(jpg_name)) wm = Image.open(watermark_name) i_size = my_image.size w_size= wm.size sizes = {"right_down":(i_size[0]-w_size[0]-5,i_size[1]-w_size[1]-5), "left_down":(5,i_size[1]-w_size[1]-5), "right_up":(i_size[0]-w_size[0]-5,5), "left_up":(5,5) } my_image.paste(wm, sizes[position], wm) my_image.save(new_name,mode='ANTIALIAS',quality=100)
con = fdb.connect(dsn='bison:/temp/test.db', user='sysdba', password='pass')
con = fdb.connect(dsn='bison:D:/temp/test.db', user='sysdba', password='pass')
# coding: utf-8 from win32com.client import Dispatch import pythoncom import datetime import sys import fdb #================================================================== def main(argv=None): start_time=datetime.datetime.now() print(start_time) fb_conn = fdb.connect(dsn='firebird:d:\\pgn.FDB',user='user',password='password') trans=fb_conn.trans() trans.begin fb_cur=trans.cursor() sql_prep=fb_cur.prep(r"INSERT INTO gpk_input (lat_name,name,to_date) VALUES (?,?,?)") xlApp = Dispatch("Excel.Application") xlApp.Visible=False xlWb = xlApp.Workbooks.Open(r"D:\Documents\children.xls") try: for Sheet in xlWb.WorkSheets: print("Sheet=",Sheet.Name," ",datetime.datetime.now()) for y in range(2,10): if str(Sheet.Cells(y,1)) != 'None': # Sheet.Cells(y,1) - ФИО в латинской транскрипции # Sheet.Cells(y,2) - ФИО на русском # Sheet.Cells(y,3) - дата чего-то . Пока не интересно dt1=str(Sheet.Cells(y,3)) dt1=dt1[0:19] dt1=str(dt1[8:10])+'.'+str(dt1[5:7])+'.'+str(dt1[0:4])+' '+str(dt1[11:]) print(type(Sheet.Cells(y,2))) rus_name=str(Sheet.Cells(y,2)) print(type(rus_name)) print('-------\n','orig=',rus_name) fb_cur.execute(sql_prep,[Sheet.Cells(y,1),rus_name.encode('utf-8'),dt1]) trans.commit() fb_cur.close() trans.close() except Exception as e3: print("main try:","Line "+format(sys.exc_info()[-1].tb_lineno),e3.__str__()) print("Sheet='",Sheet.Name,"' y=",y) trans.rollback() fb_cur.close() trans.close() xlApp.Quit() fin_time=datetime.datetime.now() print(fin_time," | ",fin_time-start_time)
r"INSERT INTO gpk_input (lat_name,name,to_date) VALUES (?,CAST(? AS VARCHAR(50)),?)"