Disclosed are systems and methods for authenticating a user and a user device. In one embodiment, a method does not use any stored usernames, passwords, or tokens. In certain embodiments, a when a user requests authentication a server provides variable values to a client device. The client device returns to the server an output based on inputting the variable values into formulas associated with the client device. The server uses the client device generated output to authenticate the client device and the user by, in some embodiments, attempting to decrypt a user ID file associated with the client device. Each time the user requests authentication different variable values are used to prevent prediction and hacking of the system.