and what are you doing with the random text per user (i.e. the encrypted emails)? Why do you need them?
If they are encrypted by the user, how can you verify their email then? This does not add up.
okay, so you can easily make a rainbow-table and thus your users are not anonymous anymore + if someone has your database and want to know if email@email.com has an account one can easily find that out, even without the need to bruteforce all emails. Btw. in this case it makes absolutely no difference if you or the client computes the hash ;)