I'd recommend an encryption method for the password storage, such as mIRC's $encode, rot13 (doesn't allow symbols), or rot47 (allows symbols).
Here's a smaller alternative for a random password, also
$remove($($str($!r(A,z) $+ $chr(32),$iif($1 isnum,$v1,$r(5,10))),2),$chr(32))
Although, the code above doesn't incorporate the "-alnum" specification.