In Silhouette a provider is a service that handles the authentication of an identity. It typically reads authorization information and returns information about an identity.
Silhouette supports also local authentication with the credentials provider. This provider accepts credentials and returns the login information for an identity after a successful authentication. Typically credentials consists of an identifier(a username or email address) and a password.
The provider supports the change of password hashing algorithms on the fly. Sometimes it may be possible to change the hashing algorithm used by the application. But the hashes stored in the backing store can’t be converted back into plain text passwords, to hash them again with the new algorithm. So if a user successfully authenticates after the application has changed the hashing algorithm, the provider hashes the entered password again with the new algorithm and stores the authentication info in the backing store.