Adler32 Checksum
Posted: Tue Feb 21, 2012 3:55 am
Hello everyone,
A very simple Adler32 checksum algorithm Source : http://en.wikipedia.org/wiki/Adler-32
Best regards.
Guimauve
A very simple Adler32 checksum algorithm Source : http://en.wikipedia.org/wiki/Adler-32
Code: Select all
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Project name : Adler 32 Checksum
; File Name : Adler32.pb
; File version: 1.0.1
; Programming : OK
; Programmed by : Guimauve
; Date : 20-02-2012
; Last Update : 20-02-2012
; PureBasic code : 4.60
; Platform : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Notes about Adler32
;
; Source : http://en.wikipedia.org/wiki/Adler-32
;
; In Ascii mode :
;
; Adler32("Wikipedia") = 300286872
; Adler32("Wikipedia") = 11E60398 (Hexa)
;
; In Unicode mode :
;
; Adler32("Wikipedia") = 600572824
; Adler32("Wikipedia") = 23CC0398 (Hexa)
;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure Adler32(*Buffer.Ascii, BufferSize.l)
Adler32_Var_A.i = 1
Adler32_Var_B.i = 0
For Index = 1 To BufferSize
Adler32_Var_A = (Adler32_Var_A + *Buffer\a) % 65521
Adler32_Var_B = (Adler32_Var_B + Adler32_Var_A) % 65521
*Buffer + 1
Next
ProcedureReturn (Adler32_Var_B << 16) | Adler32_Var_A
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<<
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<<
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
String.s = "Wikipedia"
length = StringByteLength(String)
Checksum = Adler32(@String, length)
Debug "Adler32(" + Chr(34) + String + Chr(34) + ") = " + Str(Checksum)
Debug "Adler32(" + Chr(34) + String + Chr(34) + ") = " + Hex(Checksum)
; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<
Guimauve