Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@volodymyr-mykhailyk
Created June 13, 2012 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save volodymyr-mykhailyk/2923823 to your computer and use it in GitHub Desktop.
Save volodymyr-mykhailyk/2923823 to your computer and use it in GitHub Desktop.
JS Adler32 checksum implementation
function adler32(data) {
var MOD_ADLER = 65521;
var a = 1, b = 0;
var index;
// Process each byte of the data in order
for (index = 0; index < data.length; ++index) {
a = (a + data.charCodeAt(index)) % MOD_ADLER;
b = (b + a) % MOD_ADLER;
}
//adler checksum as integer;
var adler = a | (b << 16);
//adler checksum as byte array
return String.fromCharCode(((adler >> 24) & 0xff),
((adler >> 16) & 0xff),
((adler >> 8) & 0xff),
((adler >> 0) & 0xff));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment