예제 #1
0
def make_fb2_book(book):

    fb2zip = BytesIO()
    fb2text = StringIO()

    with open('templates/fb2.tmpl', 'r', encoding='utf-8') as template_file: 
        template = Template(template_file.read())

    fb2text.write(template.render(book=book,date=datetime.utcnow()))

    authors = ''
    for author in book['book_authors']: 
        authors += author.full_name.replace(' ', '_') + '_'

    crc32 = CRC32().calculate(fb2text.getvalue())
    file_name = '{}_{}_{}.fb2'.format(
                            authors,
                            book['book_data'].book_name.replace(' ', '_'),
                            crc32
                            )
    file_name = transliterate(file_name)

    with ZipFile(fb2zip, 'w', ZIP_DEFLATED) as myzip: 
        myzip.writestr(file_name, fb2text.getvalue()) 

    book_file = { 
               'file_name': file_name+'.zip',
               'file': fb2zip.getvalue(),
               'mimetype': 'application/x-zip-compressed-fb2',
               }
    return book_file 
예제 #2
0
 def run(self):
     while True:
         coords = self.outbound_queue.get()
         encoded_message = self.encode_message(coords)
         encoded_checksum = self.encode(CRC32().calculate(encoded_message))
         self.send(self.game_server_address,
                   encoded_checksum + encoded_message)
예제 #3
0
def main():
    hashes = {}

    t1 = datetime.now()

    while True:
        s = ''.join(
            [choice(string.ascii_uppercase + string.digits) for _ in range(6)])
        hash = CRC32().calculate(s)

        if hash in hashes:
            if s == hashes[hash]:
                continue
            else:
                t2 = datetime.now()
                time_elapsed = t2 - t1
                print(s + " and " + hashes[hash] + " have the same CRC " +
                      str(hash) + ".")
                print(
                    "Time elapsed:",
                    str(time_elapsed.seconds) + "." +
                    str(time_elapsed.microseconds), "s")
                print("Calculated", len(hashes), "values.")
                break

        else:
            hashes[hash] = s
예제 #4
0
def UARTWrite(data):
	# Serial Port open, this is different than in RPI 2 or other RPI devices.
	# There is an issue with the pi3 revision b
	serialport = serial.Serial("/dev/ttyS0", 115200, timeout=0.5) # Baudrate 9600, Timeout 0.5sec
	# Byte Array
	buff = []
	# get bytes from JSON data which are then sent to teensy.
	buff = data.encode()
	#print CRC32().calculate(buff)
	nCRC32 = CRC32().calculate(buff)
	print hex(nCRC32)
	
	# Set CRC16 variable 
	crc[3] = nCRC32 & 0xFF # get low byte from CRC16
	# get high byte from CRC16
	nCRC32 >>= 8
	crc[2] = nCRC32 & 0xFF
	nCRC32 >>= 8
	crc[1] = nCRC32 & 0xFF
	nCRC32 >>= 8
	crc[0] = nCRC32 & 0xFF    
	# Send main message
	print serialport.write(buff) 
	# Send CRC16 buffer
	print serialport.write(crc) 

	# Close Serial Port, so that other routines can use serial instance 
	serialport.close()
	time.sleep(0.25)
def buildCmd(cmdNum: int, red: int, green: int, blue: int):
    cmd = bytearray([0x02, int(cmdNum & 0xff), int(red) & 0xff, int(green) & 0xff, int(blue) & 0xff])
    crc = CRC32().calculate(bytes(cmd[0:4]))
    cmd.append(crc & 0x000000FF)
    cmd.append((crc & 0x0000FF00) >> 8)
    cmd.append((crc & 0x00FF0000) >> 16)
    cmd.append((crc & 0xFF000000) >> 24)
    return cmd
예제 #6
0
    def run(self):
        while True:
            data, _game_server_address = self.socket.recvfrom(
                SERVER_MESSAGE_MAX_SIZE)
            byte_checksum = data[0:4]
            byte_message = data[4:]
            decoded_checksum = self.decode_checksum(byte_checksum)
            calc_checksum = CRC32().calculate(byte_message)

            if calc_checksum == decoded_checksum:
                game_state = self.decode_payload(byte_message)
                self.inbound_queue.put(game_state)
class CommandPacket:
    crc = CRC32()
    command = ""
    payload = ""
    checksum = 0

    def __init__(self):
        pass

    def construct_bytes(self):
        return f"{self.command}\n{self.payload}\n{self.construct_checksum()}\n\n".encode(
            "UTF-8")

    def construct_checksum(self):
        return self.crc.calculate(self.payload)
예제 #8
0
    def run(self):
        while True:
            data, client_address = self.socket.recvfrom(
                CLIENT_MESSAGE_MAX_SIZE)
            byte_checksum = data[0:4]
            byte_message = data[4:]
            decoded_checksum = self.decode_checksum(byte_checksum)
            calc_checksum = CRC32().calculate(byte_message)

            print(f"receiving from address {client_address}")

            self.heartbeats[client_address] = datetime.now()

            if calc_checksum == decoded_checksum:
                coords = self.decode_payload(byte_message)
                self.game_state[client_address] = coords
예제 #9
0
    def run(self):
        while True:
            time.sleep(0.05)
            game_state = self.game_state.copy()
            for address in game_state.keys():
                if self.has_timed_out(address):
                    del self.game_state[address]
                    del self.heartbeats[address]
                    continue

                state = self.game_state.copy()
                del state[address]
                encoded_message = self.encode_message(state.values())
                encoded_checksum = self.encode(
                    CRC32().calculate(encoded_message))
                self.send(address, encoded_checksum + encoded_message)
예제 #10
0
파일: acmelamp.py 프로젝트: tanzilli/toa
def sendPacket(ser, address, cmd, warm, cold, red, green, blue):
    valore = 0
    counter = 0
    packet = bytearray()

    #Start transmission
    packet.append(0x7E)  # STX

    #Payload
    packet.append(address)  # Address (no 0x00)
    packet.append(cmd)  # Cmd 0x01 set valore globale
    #     0x02 set luminosita
    packet.append(warm)  # Warm  brightness
    packet.append(cold)  # Cold  brightness
    packet.append(red)  # Red   brightness
    packet.append(green)  # Green brightness
    packet.append(blue)  # Blue  brightness
    packet.append(0x00)  # Reserved

    #CRC32
    payload = str(packet[1:9])

    crc32 = CRC32().calculate(payload)

    #print "Crc32: %08X" % crc32,

    #Inserisce il CRC32 a fine pacchetto

    packet.append(crc32 & 0xFF)
    packet.append((crc32 >> 8) & 0xFF)
    packet.append((crc32 >> 16) & 0xFF)
    packet.append((crc32 >> 24) & 0xFF)

    #for i in range(9):
    #	print "--> %02X" % packet[i]
    #	ser.write(str(packet[i]))

    ser.write(packet)

    for i in range(len(packet)):
        print "%02X " % (packet[i]),
    print
예제 #11
0
sh1 = "3Pr9cdVmUZIPRTa30Of5mmHqryc="
sh2 = "UJ68IKSwvnPSNiYn/hm0hfIh8eg="

sh3 = "".join(i + j for i, j in zip(sh2, sh1))
print(sh3)
if __name__ == "__main__":
    sys.argv += ["./plaint.txt"]
    for soft_name in sys.argv[1].split(','):
        print("apk name:%s" % soft_name)
        with open(soft_name, "rb") as f:
            data = f.read()
            print("%s length = %s" % (soft_name, len(data)))

            print("=" * 20 + "MD5 check" + "=" * 20)
            print("md5:%s\n" % md5(data))
            print("md5_hash:%s\n" % hex(CRC32().calculate(md5(data))))

            # print("=" * 20 + "CRC check" + "=" * 20)
            # crc32 = CRC32().calculate(data)
            # crc32_hex = hex(CRC32().calculate(data))
            # print("CRC16:%s\n" % CRC16().calculate(data))
            # print("CRC16DNP:%s\n" % CRC16DNP().calculate(data))
            # print("CRC16Kermit:%s\n" % CRC16Kermit().calculate(data))
            # print("CRC16SICK:%s\n" % CRC16SICK().calculate(data))
            # print("CRCCCITT:%s\n" % CRCCCITT().calculate(data))

            print("=" * 20 + "SHA check" + "=" * 20)
            sha1 = hashlib.sha1(data)
            sha1_hexdigest = sha1.hexdigest().encode()
            print("sha1: ", sha1_hexdigest)
            print(base64.encodebytes(sha1_hexdigest))
예제 #12
0
    :return: 加密后的结果
    """
    tmp_time = 1
    m = hashlib.md5()
    m.update(plaintext)
    while tmp_time < time:
        # print m.hexdigest()
        m.update(m.hexdigest())
        tmp_time += 1
    return m.hexdigest()


if __name__ == "__main__":
    for soft_name in sys.argv[1].split(','):
        print("apk name:%s" % soft_name)
        with open(soft_name, "rb") as f:
            data = f.read()
            print("%s length = %s" % (soft_name, len(data)))
            print("md5:%s\n" % md5(data))
            print("md5_hash:%s\n" % hex(CRC32().calculate(md5(data))))
            crc32 = CRC32().calculate(data)
            crc32_hex = hex(CRC32().calculate(data))
            crc32_hex2 = hex(CRC32().calculate(crc32))
            print("crc32:{ten}, {hex}, {hex2}\n".format(ten = crc32, hex=crc32_hex, hex2=crc32_hex2))
            print("CRC16:%s\n" % CRC16().calculate(data))
            print("CRC16DNP:%s\n" % CRC16DNP().calculate(data))
            print("CRC16Kermit:%s\n" % CRC16Kermit().calculate(data))
            print("CRC16SICK:%s\n" % CRC16SICK().calculate(data))
            print("CRCCCITT:%s\n" % CRCCCITT().calculate(data))
    input()
예제 #13
0
from PyCRC.CRC16SICK import CRC16SICK
from PyCRC.CRC32 import CRC32
from PyCRC.CRCCCITT import CRCCCITT

if __name__ == "__main__":
    # for hex strings use bytearray to transform to a bytes sequence
    # bytearray.fromhex('056405c00001000c') -> b'\x05d\x05\xc0\x00\x01\x00\x0c'

    # HEXADECIMAL EXAMPLE
    target = b'\x05d\x05\xc0\x00\x01\x00\x0c'

    # DECIMAL EXAMPLE
    target = '12341234'

    print("The results for {} are".format(target))
    print("{:20s} {:10X}".format('CRC-CCITT(XModem)',
                                 CRCCCITT().calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0xFFFF)',
                                 CRCCCITT(version="FFFF").calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0x1D0F)',
                                 CRCCCITT(version="1D0F").calculate(target)))
    print("{:10s} {:20X}".format('CRC-16', CRC16().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Modbus)',
                                 CRC16(modbus_flag=True).calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (SICK)',
                                 CRC16SICK().calculate(target)))
    print("{:20s} {:10X}".format('CRC-DNP', CRC16DNP().calculate(target)))
    print("{:20s} {:10X}".format('CRC-32', CRC32().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Kermit)',
                                 CRC16Kermit().calculate(target)))
예제 #14
0
    if args.crc_type == 'crc16':
        calculated_crc = CRC16().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16dnp':
        calculated_crc = CRC16DNP().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16kermit':
        calculated_crc = CRC16Kermit().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16sick':
        calculated_crc = CRC16SICK().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc32':
        calculated_crc = CRC32().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crcccitt':
        calculated_crc = CRCCCITT().calculate(data)
        print("CRC : ", calculated_crc)

    if args.compare:
        if int(args.compare) == int(calculated_crc):
            print('Crc are the same!')
        else:
            print('Crc are not matching!')
예제 #15
0
 def setUp(self):
     self.crc = CRC32()
예제 #16
0
def make_pdf_book(book):
    pdf = PDF()

    base = os.path.abspath(os.path.dirname(__file__))
    font_dir = os.path.join(base, 'font')

    arial = os.path.join(font_dir, 'LiberationSans-Regular.ttf')
    arial_bold = os.path.join(font_dir, 'LiberationSans-Bold.ttf')
    times = os.path.join(font_dir, 'LiberationSerif-Regular.ttf')

    pdf.add_font('Arial', '', arial, uni=True)
    pdf.add_font('Arial-Bold', '', arial_bold, uni=True)
    pdf.add_font('Times', '', times, uni=True)
    pdf.alias_nb_pages()

    pdf.book_name = book['book_data'].book_name
    pdf.set_title(pdf.book_name)

    authors = ''
    for author in book['book_authors']:
        pdf.set_author('BookShell 0.1')
        authors += author.full_name.replace(' ', '_') + '_'

    pdf.title_page(book['book_authors'], pdf.book_name)
    pdf.add_page()

    if book['book_data'].book_description:
        pdf.chapter_body(book['book_data'].book_description)

    book_text = ''
    for chapter in book['book_chapters']:
        pdf.title = chapter[0].chapter_title

        if chapter[1] == 'allow':
            chapter_txt = chapter[0].chapter_text
        else:
            deny = """\n\nДанная глава закрыта для доступа автором. 
Глава будет доступна для бесплатного просмотра {}"""
            deny = deny.format(chapter[0].date_to_open.strftime('%d-%m-%Y'))
            chapter_txt = chapter[0].short_text + deny

        pdf.print_chapter(chapter[0].chapter_number, chapter[0].chapter_title,
                          chapter_txt)
        book_text += chapter[0].chapter_text

    crc32 = CRC32().calculate(book_text)
    pdf_file_name = '{}_{}_{}.pdf'.format(authors,
                                          pdf.book_name.replace(' ', '_'),
                                          crc32)
    pdf_file_name = transliterate(pdf_file_name)
    #pdf_file_name = os.path.join('static', 'pdf', pdf_file_name)

    with BytesIO() as pdf_file:
        pdf_file.write(pdf.output(dest='S').encode('latin-1', 'ignore'))

        book_file = {
            'file_name': pdf_file_name,
            'file': pdf_file.getvalue(),
            'mimetype': 'application/pdf',
        }
        return book_file
예제 #17
0
from PyCRC.CRC16 import CRC16
from PyCRC.CRC32 import CRC32

input = '12345'
print(CRC32().calculate(input))
print(CRC16().calculate(input))