Adler32 é um algoritmo de soma de verificação que garante a integridade dos dados transmitidos que tem sido armazenados ou compactados e descompactados . Criado pela adição de todos os bytes em uma seqüência de dados ( bloco ) ou uma palavra , uma soma de verificação Adler32 é um número inteiro de 32 bits usado para verificar os dados . O algoritmo em si não difere de Java , Python ou qualquer uma das outras linguagens de programação que o utilizam , no entanto, o script usado para chamar o algoritmo e mostrar os resultados podem variar dependendo da linguagem de programação. Adler32 Algoritmo
Desenvolvido por Mark Adler baseado na soma de verificação de Fletcher , o algoritmo Adler32 fornece um único número inteiro de 32 bits calculado a partir de uma string ou bloco de dados (ponto de partida ) . Depois de transmitir os dados , é realizada uma verificação no fim de recepção . Se o resultado da soma de verificação na cadeia a partir difere de qualquer forma de o resultado da soma de verificação na cadeia transmitido para o receptor , em seguida, os dados foram alterados de algum modo . Se o início e término coincidir com números inteiros , existe uma boa possibilidade de os dados recebidos são os mesmos que os dados transmitidos.
Java e Python Script Diferença
Processamento literal valores como o valor binário de 32 bytes resultante da soma de verificação Adler32 , Java empurra a 32 byte valor binário literal em uma pilha. Python empurra um ponteiro para a pilha que está apontando para um objeto inteiro correspondente . Além disso, o Python é mais dinâmica durante o processamento de bytecode Java , onde não é tão flexível.
Java
calcular o checksum Adler32 de um arquivo requer que você criar um objeto de Adler32 . A classe FileInputStream cria um fluxo de entrada para ler bytes do arquivo , e uma vez que os dados são transmitidos a soma de verificação é calculada pela classe CheckOutputStream como está sendo escrito sobre o fluxo de saída. O método getValue () retorna o valor da soma de verificação eo reset () método redefine o valor de volta para o valor de checksum originais
Python
Calculando a 32. - bit Adler checksum, Python executa um comando simples para obter a soma de verificação de uma determinada cadeia . Ele usa um buffer de bytes ( buf ) para armazenar o número. Se o buf não tem um número, a função retorna um valor padrão.