function str2blks_MD5(str)
{
  nblk = ((str.length + 8) >> 6) + 1;
  blks = new Array(nblk * 16);
  for(i = 0; i < nblk * 16; i++) blks[i] = 0;
  for(i = 0; i < str.length; i++)
    blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
  blks[i >> 2] |= 0x80 << ((i % 4) * 8);
  blks[nblk * 16 - 2] = str.length * 8;
  return blks;
}
function str2blks_MD5(str)
{
  nblk = ((str.length + 8) >> 6) + 1;
  blks = new Array(nblk * 16);
  for(i = 0; i < nblk * 16; i++) blks[i] = 0;
  for(i = 0; i < str.length; i++)
    blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
  blks[i >> 2] |= 0x80 << ((i % 4) * 8);
  blks[nblk * 16 - 2] = str.length * 8;
  return blks;
}
function str2blks_MD5 ( str ) { nblk = ( ( str . length + 8 ) >> 6 ) + 1 ; blks = new Array ( nblk * 16 ) ; for ( i = 0 ; i < nblk * 16 ; i ++ ) blks [ i ] = 0 ; for ( i = 0 ; i < str . length ; i ++ ) blks [ i >> 2 ] |= str . charCodeAt ( i ) << ( ( i % 4 ) * 8 ) ; blks [ i >> 2 ] |= 0x80 << ( ( i % 4 ) * 8 ) ; blks [ nblk * 16 - 2 ] = str . length * 8 ; return blks ; }
/*
Convert a string to a sequence of 16-word blocks, stored as an array.
Append padding bits and the length, as described in the MD5 standard.
/ * Convert a string to a sequence of 16 - word blocks stored as an array . Append padding bits and the length as described in the MD5 standard .