Because I did not want to expose my passwords in plain text whenever an exception was thrown or inside the debugger, I wrote this simple snippet. It's very simple, but can be quite useful nonetheless...
Python, 3 lines
1 2 3
class passwd(str): def __repr__(self): return repr('*' * self.__len__())
To demonstrate its use, here some examples:
>>> astr = 'aString' >>> astr 'aString' >>> print astr aString >>> apwd = passwd('aPassword') >>> apwd '*********' >>> apwd == 'aPassword' True >>> print apwd aPassword
More important, the password string will not immediately show up in your debugger in plain text or in exception frames, since __repr__ is used for those cases.
Nice! Although I'd write it as:
Yep, that's a better version. I'll be using that one myself from now on... Thanks!
I like the simplicity of the code. Very useful. However I don't see why you have to reveal the length of your password. Why not use 8 * '*' for example.