Hi Caolan! I do not know exactly how Word handles the 0x200 bytes wrap, but I have knowledge how Excel does (it has 0x400 page size). I believe that both programs use almost the same encryption Algo: // from wvDecryptTest.c /* ... skipped ... */ int verifypwd (u_char pwarray[64], u_char docid[16], u_char salt[64], u_char hashedsalt[16]) { /* ... skipped ... */ pwarray[56] = 0x80; pwarray[57] = 0x0A; MD5Transform (keytab2, (u_long *) pwarray); /* Generate 40-bit RC4 key from 128-bit hashed password */ MD5Init (keytab3); memset(pwarray, 0, 64); memcpy(pwarray, keytab2, 5); pwarray[9] = 0x80; pwarray[56] = 0x48; /* !!! Before this MD5Transform the fifth byte of keytab3 is set to the page number !!! */ MD5Transform (keytab3, (u_long *) pwarray); prepare_key ((u_char *) &keytab3, 16, &key); Hope this will help you with your converter. If you have any other questions regarding MS Word encryption, please feel free to contact me. === Dmitry Sumin, Passware,