Keylogger-resistant text entry