Feb-03-2020, 10:26 PM
Hi! I'm trying to use the checksum algorithm CRC in my code (python), but I'm facing several dificulties. I tried to implement a CRC algorithm by my own but it's completely bad, a file of 20MB cost me 10+ minutes to calculate the CRC, add to the bitvector and resolve the bitvector.
After that I tried to use some librarys but i dont know how to use them at all. Searching in the web I founded some examples that helped me to calculate the CRC, but i dont know how to add it in the bitvector and resolve.
Can someone help me? I just need some examples of how to use one library or an algorithm that really work to implement.
I tried to use the the crc8, crccheck, crcmod and pycrc libraries.
I'm trying to open a file -> transform into bytes -> calculate the CRC -> send -> recieve -> verify the CRC -> open the file.
My actual code:
After that I tried to use some librarys but i dont know how to use them at all. Searching in the web I founded some examples that helped me to calculate the CRC, but i dont know how to add it in the bitvector and resolve.
Can someone help me? I just need some examples of how to use one library or an algorithm that really work to implement.
I tried to use the the crc8, crccheck, crcmod and pycrc libraries.
I'm trying to open a file -> transform into bytes -> calculate the CRC -> send -> recieve -> verify the CRC -> open the file.
My actual code:
import base64
import sys
from os import startfile
def codifica():
print("Digite o Nome.extensão ou Diretorio do arquivo:")
arquivo = input()
data_input = open(arquivo, "rb")
data = base64.b64encode(data_input.read())
data_input.close()
check = arquivo[0] + arquivo[1] + arquivo[2]
if(check == 'C:\\'):
D = arquivo.split('\\')
auxname = D[len(D) - 1]
Nome = auxname.split('.')
else:
Nome = arquivo.split('.')
saida = Nome[0] +'LI-FI.' + Nome[1]
print(saida)
return data
def decodifica(data):
new_output = base64.b64decode(data)
new_data = open('saida.png','wb')
new_data.write(new_output)
new_data.close()
startfile('saida.png')
def crc (dados_str):
poly_str = '1111110'
n = len(dados_str)-2
crc_n = len(poly_str)-1
dados = int(dados_str,2)
dados = dados << crc_n
