Brainwallets are OK, so long as you realise that any word that is easy to remember has less entropy than a genuine random Pass word.
By that I mean, supposing you wanted to create an 8 character Password, you could choose, for example, 'elephant' or 'xcdrgthy'.
The problem with Brain wallets is that they are effectively mineable unless you use a VERY good password or Phrase.
For example, if you chose to use elephant as a brain wallet (You can't because most require 15 chars or more, but let;s suppose) and you put some Bitcoin in there, you would lose your BTC instantly because bad guys have already pre compiled all the Public and Private keys for all simple Passwords and Phrases.
Eg Elephant1235abcd......JohnsBtcWallet etc. A high end PC graphic card can calculate 20 Billion password > Brain wallet Private Keys per second and they have been doing this for several years AND saving these to Hard disk, so if EVER anyone uses one of those passwords as a brainwallet password, their BTC will dissapear almost instantly.
For example, the Brainwallet passphrase 'elephantbeardog' quite possibly has never been used but it has quite possibly be precompiled by the bad guys so that as soon as someone uses it, let's say to do an experiemnt just to see how Brainwallets work, their BTC will more than likely disappear instantly because all common 3 word combinations have already been precompiled into Public and Private keys and stored on hard disk and those addresses will be regularly monmitored.
The point I am making is that in order for a BRain wallet to be secure it must be as Cryptographically unique as you can possibly make it and if you are going to use words, it will never have the randomness that a purely random Password will have.
You can compensate for that to a degree by making it longer.
If you are going to use a Bainwallet, use Upper and Lower case, numbers and Special Characters and be more than 20 Chars.
If most of your Password is recognisable as a Word, it is less secure than For example you might think that €L€9h@nt is a reasonably good password, but in Brain wallet terms it is as bad as Elephant, because once they have compiled all the SHA(2565) derivations of all the dictioary words, they then went on to compile all the common character substitutions for all the dictionary words, meaning that in Brain Wallet terms, €L€9h@nt is no better than Elephant.
In General there are Three main ways someone can attack your Passphrase or Pass word.
Firstly, they can use Brute force and just try every combination of Characters.
currently, anything over 10 Characters if it contains Upper/Lower case, Numbers and Special Chars is highly resistant to Brute force, unless your attacker has a Supper Computer at his disposal.
The way to defeat a Brute for attack is usingh a Long Password containing Upper case, lower case, numbers and special Chars.
The next method of attack is a dictionary attack, where the attacker can try all the common Dictionary words, common Character substitutions Such as Elephant123 elephant123 elephantabc €lephantabc etc etc
plus trillions of other possible words and common character substitutions.
Simple examples like those will get your Bitcoins stolen almost imediately.
The way to defeat a Dictiononary attack is to not use whole common dictionary words
the next way they might attack your password is to attack your personal information.
for example, they coudl collect everything they know about you, your name, your birthday, your tel no, Nat insurance mumber and again, With a Very powerful PC able to compute Billions of rearrangements
per second could, in a few hours compute Trillions of Possible password combinations base don various re arrangements of your name, abreviations of your name, Tel no, Wife's name, Surname, Tel no, etc etc.
Password / Passphrase length is one of the most important factors in security, the longer the better.
you could use your Birthdate Tel no and Nat ins No Plus an abreviation of your name.
that would most liklely produce a Passphrase long enough to resist Brute forcing and a dictionary attack but would be comparatively weak to an attacker who had a lot of personal information on you such as
you Tel no, name, Birthday etc.
and so, if you want to creat a Brainwallet PassPhrase, it must be long, 20 chars or more, possibly contain personal info, heavily abreviated, Your name, shortened or a Nickname, interspaced with special chars, and maybe even a common character substituted dictionary word, that way, they must uyse all three techniques in order to get at your password.
EG, :-)[Rob12/10/1987/077986]:-) Would fare very well against a Dictionary attack, and a Brute force attack though you would remain significanntly more vulnerable from an a attacker who had information on you.
A password that contains a Birthday for example might be 13101958 (13th Oct 1958)
You might think that has 99 Million possibilities because it has 8 numbers, but if it;'s a birthday. there are only 31 Possible combinations for the first two chars (days)
Only 12 for the second 2 chars ( months ) and only possibly 2000 for the Next four chars (years), meaning that
there are only 30 X 12 X 2000 Possible birthday combinations in that 8 digits, not Billions as you might first suspect.
Because obviously, there is no 99th Day of the 99th Month.
Personally I like the Brainwallet concept , put you have to be very very very Cryptic,
Even if you manage that though, your pass word will not be as secure as a true randon 20 char Password even though you might very well be able to produce something that is very highly secure plus reasonably easy to remember for you.
The biggest problem with Brainwallets as far as the general public is concered is that many will try to use them and
not do their homework and try things like 'AlisonsWalletNo1' or LetMeInABC or etc etc etc an promptly lose thier BTC. because things like that will have already been pre computed and are now being regularly monitired.