User authentication is the process of verifying an identity claimed by a system entity. There are four main means of authenticating a user's identity: something the user knows (e.g. password), something the user possesses (e.g. smart card), something the user is (e.g. fingerprint), and something the user does (e.g. typing rhythm). Password authentication is widely used but vulnerable to dictionary attacks, password guessing, workstation hijacking, and exploiting multiple password use or user mistakes. Techniques like password hashing with salts and account lockouts help strengthen password authentication against cracking attempts.