1. Python / Говнокод #16696

    −97

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    def calcCrc(d):
    	
    	null = ''.join( ['\x00' for x in xrange(0,16)] )
    	init = ''.join( ['\x00' for x in xrange(0,16)] )
    	hsh = ''.join( ['\x00' for x in xrange(0,16)] )
    
    	inputd = array('c',''.join( ['\x00' for x in xrange(0,16)] ))
    	data = copy.copy(d)
    
    	if  isinstance(d,list):
    		data = struct.pack('B'*len(data), *data)
    
    	l = len(data)
    	if l % 16 != 0:
    		data+="".join(["\x00" for x in xrange(0, 16-l % 16)]);
    	
    	for i in range(0,len(data),16):
    		for j in xrange(16):
    			if i + j < len(data):
    				inputd[j] = chr(ord(hsh[j]) ^ ord(data[i+j]));
    			else:
    				inputd[j] = hsh[j];
    		obj = AES.new(null, AES.MODE_ECB, hsh)
    		hsh = obj.encrypt(inputd)
    
    	return hsh

    расчет контрольной суммы по AES CBC.

    Запостил: Anus, 15 Сентября 2014

    Комментарии (30) RSS

    • ''.join( ['\x00' for x in xrange(0,16)] )


      Кто-нибудь, расскажите ему про '\x00' * 16...
      Ответить
      • А все таки говно есть и в самом языке - не иметь другого вменяемого способа создать строку или масив заданой длины, кроме "\x00"*N или [0]*N это - убого.
        Ответить
        • Тут вам не Перл, где стопицот способов сделать что-то.

          А зачем в Питоне может потребоваться создавать именно неинициализированный массив/строку заданной длины?
          Ответить
        • Строки неизменяемые.
          Ответить
    • >>> xrange
      Старовато.
      Ответить
      • Но ведь питон 3 мёртворожденный.
        Ответить
        • ?????
          Ответить
          • > ?????
            Проблемы с кодировкой?
            Ответить
            • > питон 3 мёртворожденный.
              Первый раз слышу просто.
              Ответить
              • Мало работал с питоном, видимо.
                Ответить
                • показать все, что скрытоЧто о-о, а-а блядь. ЭВМ блядь сранный. Пить пхп, утверждение. Так, точно.
                  Ответить
                • а чего с ним мертво рожденого ? ну принт функция генераторов добавили. а так вполне программированько.
                  Ответить
                  • Либ нет => мёртв.
                    Ответить
                    • Как нет? Даже для маздайки либ наконпелировали: http://www.lfd.uci.edu/~gohlke/pythonlibs/
                      Ответить
                      • gevent есть? А если найду?

                        Меня не прикалывает посреди проекта бекпортировать его целиком на 2.7.х, только потому, что какая-то одна важная, но не понадобившаяся в самом начале, либа не нашлась в 3.х.
                        Ответить
                        • Печаль...
                          Ответить
                        • на си же можно написать чего в питоне нет а потом из питона юзать. Если прям вдруг чего то нет. Хотя приведите пример чего нет в 3 что есть в 2.
                          Ответить
                          • > Хотя приведите пример чего нет в 3 что есть в 2.
                            См. выше.
                            Ответить
                            • А если найду: https://github.com/surfly/gevent/issues/38

                              Тут пишут про несколько незаконченных форков.
                              Ответить
                        • Список в студию. А меня не прикалывает, что некоторые мудаки будут еще лет 10 сидеть на 2.х и юзают встроенный http клиент, не могущий в гзип вместо requests.
                          Ответить
                          • > http клиент, не могущий в гзип
                            Если сервер шлёт gzip даже если его не просили - это хуёвый сервер, имхо.

                            > Список в студию.
                            Ну лично для меня - только gevent. Но я с питоном мало работаю, и только с серверной стороны.
                            Ответить
                            • >Если сервер шлёт gzip даже если его не просили - это хуёвый сервер, имхо.
                              И правильно. Сервер не хочет играть по нашим правилам? Отлично, его проблемы, а мы пойдем в другой интернет.
                              Ответить
                              • Ну вообще-то сервер обязан уважать заголовок Accept.
                                Ответить
                                • Accept-Encoding

                                  The "identity" content-coding is always acceptable.
                                  Ответить
                                  • А если мне пишет < HTTP/1.0 406 Non-acceptable encoding. Please use gzip or deflate>?
                                    Ответить
                                    • Сторонний, написанный обезьянами сервер?
                                      Ну тогда всё ещё можно подключить либу, умеющую в gzip. Во втором питоне уже ведь можно подключить либы, так?
                                      Ответить
                                      • >Сторонний, написанный обезьянами сервер?
                                        Не знаю. Да и вообще я только объяву разместил, там человек (http://www.gamedev.ru/code/forum/?id=194520) вообще питоном не пользовался. Просто суть такова что такие серверы есть, и хуевые они или нет работать то с ними надо.
                                        Ответить
                                      • > Сторонний, написанный обезьянами сервер?
                                        Да просто админы zKillboard решили трафик поэкономить, вот и запретили identity кодирование.
                                        Ответить
    • Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpFPQ==
      Ответить
    • Я скинул обувь и в три прыжка поднялся на второй этаж. Ручка двери в комнату Джейкоба не поддалась, и мне пришлось постучать. Но никто не ответил.
      Ответить

    Добавить комментарий