In order for the RndPhrase.js library to support generation of capital and special characters I have made som changes to the pack function. The changes can be seen here
https://github.com/RndPhrase/RndPhrase.js/tree/rel-packThe generation of the packed hash is fundamentally the same, but instead of tacking characters from one source I take it from multiple. This solution is not backwards compatible, but I don't think it that is a problem as nothing is v1 yet anyway. ;)
I would like some thoughts on the method, can anything be done in a better way?
I have one issue which is how the numbers are generated. I generate numbers from 2 bytes instead of 4 as I wanted to keep the password length at 16 and cubehash currently only generates 64 length strings. I'm not sure there is a bias issue, but it I'm thinking of patching cubehash.js to be configurable with (at least) output length such that we can generate longer password hashes without problems.