Adler32 är en kontrollsumma algoritm som säkerställer integriteten hos överförda data som har lagrats eller komprimeras och expanderas . Skapas genom att lägga alla byte i en datasträng (block ) eller ord , är en Adler32 kontrollsumma ett 32 - bitars heltal som används för att kontrollera uppgifterna . Algoritmen i sig skiljer sig inte för Java, Python eller någon av de andra programmeringsspråk som använder det, men i skriptet brukade kalla algoritmen och visa resultatet kan variera beroende på programmeringsspråket . Adler32 Algoritm
Utvecklad av Mark Adler utifrån Fletchers kontrollsumma ger Adler32 algoritmen en enda 32 - bitars heltal beräknas från en sträng eller block av data ( startpunkten ) . När du sända data, görs en kontroll utförs på mottagarsidan. Om resultatet av kontrollsumman på startlinjen strängen skiljer sig på något sätt från resultatet av checksumman på strängen sänds till mottagaren , sedan data har förändrats på något sätt. Om de börjar och slutar heltal stämmer , det finns en god möjlighet mottagen data är samma som de data du överfört. Addera Java och Python Script Skillnad
Processing bokstavlig värden som den 32 binär värde som följer av Adler32 kontrollsumma , skjuter Java bokstavlig 32 värdet binär på en stapel . Python skjuter en pekare på stacken som pekar på ett motsvarande heltal objekt. Dessutom är Python mer dynamiskt vid behandling bytecodes , där Java är inte så flexibel .
Java
Computing Adler32 kontrollsumman för en fil kräver att du skapa ett objekt av Adler32 . En FileInputStream klass skapar en ingång ström att läsa byte från filen , och när data överförs kontrollsumman beräknas av CheckOutputStream klassen som det skrivs på den utgående strömmen . Den getValue ( ) metoden returnerar värdet för kontrollsumman och reset ( ) metoden återställer värdet tillbaka till det ursprungliga kontrollsumman Addera Python
Computing 32 . - bitars Adler kontrollsumma , exekverar Python ett enkelt kommando för att få kontrollsumman för en given sträng . Den använder en byte buffert ( buf ) för att lagra numret . Om buf inte har ett nummer , returnerar funktionen ett standardvärde .