def send_restart_request(): #Generate Restart Request <STX>0R035<Init Msg><crc><ETX> my_packet = "0R035IN1RS " + time.strftime( "%m%d%Y %H%M%S") + " MGATE SIMULTR" print("Sending Restart Request...") print(my_packet) #Calculate CRC x = str(padded_hex(CRC16Kermit().calculate(my_packet), 4)).upper() x = x[2:] calc_crc = x[2:] + x[:2] #Send Bytes out over serial port ser.write(b'\x02') #STX for i in range(0, len(my_packet)): ser.write(bytes(my_packet[i], 'utf_8')) for i in range(0, len(calc_crc)): ser.write(bytes(calc_crc[i], 'utf_8')) ser.write(b'\x03') #ETX
def send_restart_request(): #Generate Restart Request <STX>0R035<Init Msg><crc><ETX> my_packet = "0R035IN1RS " + time.strftime( "%m%d%Y %H%M%S") + " MGATE SIMULTR" print("Sending Restart Request...") print(my_packet) #Calculate CRC x = str(padded_hex(CRC16Kermit().calculate(my_packet), 4)).upper() x = x[2:] calc_crc = x[2:] + x[:2] my_packet = my_packet + calc_crc b_array = bytearray() b_array.extend(my_packet) #Send Bytes out over serial port ser.write(b'\x02') #STX ser.write(b_array) ser.write(b'\x03') #ETX
def send_transponder_message(ssn): #Generate Tag Data Message <STX><SSN>D113<Transp Msg><crc><ETX> i = random.randint(0, 4) #Randomly assign a tag to the message tag_msg = fake_tag_data_array[i] #Applying nMod8+1 to SSN per mGate ICD my_packet = str((int(ssn) % 8) + 1) + "D" + str(len(tag_msg)) + tag_msg print("Sending Transponder Message...") print(my_packet) #Calculate CRC x = str(padded_hex(CRC16Kermit().calculate(str(my_packet)), 4)).upper() x = x[2:] calc_crc = x[2:] + x[:2] my_packet = my_packet + calc_crc b_array = bytearray() b_array.extend(my_packet) #Send Bytes out over serial port ser.write(b'\x02') #STX ser.write(b_array) ser.write(b'\x03') #ETX
payload_length = payload_length + out.decode("utf-8") byte_array = byte_array + out.decode("utf-8") if pl_count == 3: #print("Payload Length: " + payload_length) my_state = "CRC" elif my_state == "CRC": crc_count = crc_count + 1 crc = crc + out.decode("utf-8") crc_array = crc_array + out.decode("utf-8") if crc_count == 4: #print("Received CRC: " + crc) my_state = "WAIT_ETX_CRQ" elif my_state == "WAIT_ETX_CRQ": if out == b'\x03': #print("Received ETX - End of CRQ packet") x = str(padded_hex(CRC16Kermit().calculate(byte_array), 4)).upper() x = x[2:] calc_crc = x[2:] + x[:2] #print("Calculated CRC: " + calc_crc) if crc_array == calc_crc: #print("CRQ Packet CRC Correct") ser.write(b'\x02') ser.write(b'0') ser.write(b'0') ser.write(b'0') ser.write(b'0') ser.write(b'A') ser.write(b'0') ser.write(b'0') ser.write(b'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)))
def setUp(self): self.crc = CRC16Kermit()
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("{:20s} {:10X}".format('CRC-DNP', CRC16DNP().calculate(target))) print("{:20s} {:10X}".format('CRC-32', CRC32().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-16 (Kermit)', CRC16Kermit().calculate(target))) tests = [ { 'val': '$TEA', 'Csum': 'A4B9' }, { 'val': '$TEA,027,028,025,000,', 'Csum': 'D79C' }, { 'val': '$PRA', 'Csum': '95F7' }, {
link_state = 0 elif my_state == "CRC": crc_count = crc_count + 1 crc_array = crc_array + rx_byte.decode("utf-8") #Terminator field is a 16 bit CCITT CRC (Kermit) and has length of 4 bytes if crc_count == 4: if link_state == 0: my_state = "WAIT_ETX_RC" else: my_state = "WAIT_ETX_ACK" start_time = time.time() elif my_state == "WAIT_ETX_RC": if rx_byte == b'\x03': #Got ETX so let's calculate CRC and compare it to terminator field x = str( padded_hex(CRC16Kermit().calculate(str(byte_array)), 4)).upper() x = x[2:] calc_crc = x[2:] + x[:2] if calc_crc == crc_array: link_state = 1 print("Received Restart Confirmation...") print(byte_array) print("Link Established!") time.sleep(1) main_ssn = 0 send_transponder_message(main_ssn) my_state = "GET_ACK" elif my_state == "WAIT_ETX_ACK": if rx_byte == b'\x03': #Got ETX so let's calculate CRC and compare it to terminator field
help='use to compare with given crc') args = parser.parse_args() if __name__ == "__main__": data = args.data_to_generate_crc 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:
def calc(input): return CRC16Kermit().calculate(input)
def calc(data): return CRC16Kermit().calculate(data)
: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()
print("%.3fMHz" % radio.MHz) radio.PaSelect = 0 # check schematic of your board, is RFO or PABOOST connected? print("PaSelect:%u" % radio.PaSelect) lora.SpreadingFactor = 8 print("SpreadingFactor:%u" % lora.SpreadingFactor) input = '123456789' #print(CRCCCITT().calculate(input)) c = CRCCCITT().calculate(input) # CRC-CCITT (Xmodem) print "CCITT :%x " % c c = CRC16().calculate(input) # CRC-16 print "CRC16 :%x " % c c = CRC16DNP().calculate(input) # CRC-DNP print "CRC16DNP :%x " % c c = CRC16Kermit().calculate(input) # CRC-CCITT (Kermit) print "CRC16Kermit:%x " % c c = CRC16SICK().calculate(input) # CRC-16 (Sick) print "CRC16SICK:%x " % c buf = [ord(ch) for ch in input] print "tx buf:", print buf stringForCRC = array.array('B', buf).tostring() print "tx stringForCRC :", print stringForCRC c = CRCCCITT().calculate(stringForCRC) # CRC-CCITT (Xmodem) print "tx CCITT :%x (buf)" % c print "c-type:", print type(c) buf.append(c >> 8)
from PyCRC.CRC16 import CRC16 from PyCRC.CRC16DNP import CRC16DNP from PyCRC.CRC16SICK import CRC16SICK from PyCRC.CRC16Kermit import CRC16Kermit from PyCRC.CRC32 import CRC32 from PyCRC.CRCCCITT import CRCCCITT import zlib import crc16 crc_table = dict() crc_table["crc16"] = (CRC16().calculate, dict()) crc_table["crc16dnp"] = (CRC16DNP().calculate, dict()) crc_table["crc16sick"] = (CRC16SICK().calculate, dict()) crc_table["crc16kermit"] = (CRC16Kermit().calculate, dict()) crc_table["crc16xmodem"] = (crc16.crc16xmodem, dict()) crc_table["adler32"] = (zlib.adler32, dict()) crc_table["crc32"] = (zlib.crc32, dict()) import fileinput for line in fileinput.input(): line = line.rstrip() for crc_type in crc_table: crc = crc_table[crc_type][0](line) if (crc in crc_table[crc_type][1]): crc_table[crc_type][1][crc] += 1 else: crc_table[crc_type][1][crc] = 0 import operator for crc_type in crc_table: print crc_type