Fun times! Was working on lisafsh-tool and wanted to add a los-depassword.c tool, but no luck.
Note that the password will only keep you from opening the document, it does not encrypt it. You can still extract it with lisafsh-tool, which is fine if it's text, but you won't be able to do much with say LisaDraw documents.
So each extent (inode) at hex offset 63 to around 6b (9 bytes) contains some kind of checksum for the document.
At offset 0x62 is the length field for the password. this goes from 0-8.
If you pick a password longer than 8 chars, say the max: 20 chars, the password length bytet will still stay at 8 chars.
If you touch chars 0x63-0x6b you'll no longer be able to open the file at all.
When you set a password that's all the same char, like 000000 and then switch to another that's all 11111111's, you can see the values there increment by 1. So it's a most likely just a summing routine. If your password is longer than 8, say you go from 7 zeros to 8, it rolls over and updates the first byte at 0x63 and the low nibble goes up by one more.
If you set the password length to zero, it will still ask for a password, but you won't be able to open the document (or drag it to the trash).
So the password length is not the only thing it uses as a flag.
When you have a plain file and convert it to password protected it will delete the extent (inode) and create a new protected one.
If you try to copy the values at 0x62-0x6b over those on the new extent, it will still ask for a password.
Even more fun, if you create a new blank LisaWrite doc and try to replace its contents with the contents of an encrypted one, because this checksum field won't match, it won't let you open it and put up a message saying "LisaWrite is unable to display this document. The document may be damaged."
But if you duplicate a file, you'll now have two files that have the same exact checksum.