Ps. I am not sure whether all these 93 characters can be used but if I recall correctly they can, I am just busy at the moment and I can't check online. If someone could confirm this please
BIP39 actually specifies that any passphrase will be normalized to UTF-8 NFKD, so you can actually have a character set in the tens of thousands if you wanted, provided your wallet software supports these characters, and use any unicode character such as ½, Ü, or ←.
I wouldn't recommend going down this route, however, since there are a lot of unicode characters that look very similar or even identical, and would obviously lead to completely different wallets if confused. For example A, A and A are all different characters (Latin, Greek, and Cyrillic).
Yeah, I wouldn't go down this path.
The dataset I will use is:
A - Z (excluding O and I) -> 24 characters
a - z (excluding l) -> 25 characters
0 - 9 (excluding 0) -> 9 characters
@#$%^&* -> 7 characters
So in total I have 65 characters.
I plan to go for more than 20 characters long passphrases, which will give me ENTROPY > ln(65^20)/ln(2) ~= 120 bits.
I will collect random data using the following command:
cat /dev/urandom | tr -dc 'ABCDEFGHJKLMNPQRSTUVWXYZ123456789abcdefghijkmnopqrstuvwxyz@#$%^&*' | fold -w 20 | head -n 1