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
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)
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
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
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)
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
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)
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
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))
: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()
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)))
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!')
def setUp(self): self.crc = CRC32()
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
from PyCRC.CRC16 import CRC16 from PyCRC.CRC32 import CRC32 input = '12345' print(CRC32().calculate(input)) print(CRC16().calculate(input))