You can write a custom password strategy that has two instance methods.
In your authenticated? method, encrypt the password with your desired
strategy, and then compare it to the encrypted_password that is provided by
Clearance.

Using the SignInGuard stack

SignInGuards offer fine-grained control over the process of
signing in a user. Each guard is run in order and hands the session off to
the next guard in the stack.

A SignInGuard is an object that responds to call. It is initialized with a
session and the current stack.

On success, a guard should call the next guard or return SuccessStatus.new if
you don't want any subsequent guards to run.

On failure, a guard should call FailureStatus.new(failure_message). It can
provide a message explaining the failure.

For convenience, a SignInGuard class has been
provided and can be inherited from. The convenience class provides a few methods
to help make writing guards simple: success, failure, next_guard,
signed_in?, and current_user.

Testing authorized controller actions

To test controller actions that are protected by before_filter :authorize,
require Clearance's test helpers and matchers in your test suite.

For rspec, add this line to your spec/spec_helper.rb:

require'clearance/rspec'

For test-unit, add this line to your test/test_helper.rb:

require'clearance/test_unit'

This will make Clearance::Controller methods work in your controllers
during functional tests and provide access to helper methods like:

sign_in
sign_in_as(user)
sign_out

And matchers like:

deny_access

Example:

context 'a guest'do
before do
get :showend
it { should deny_access }
end
context 'a user'do
before do
sign_in
get :showend
it { should respond_with(:success) }
end

You may want to customize the tests:

it { should deny_access }
it { should deny_access(flash:'Denied access.') }
it { should deny_access(redirect: sign_in_url) }

Faster tests

Clearance includes middleware that avoids wasting time spent visiting, loading,
and submitting the sign in form. It instead signs in the designated
user directly. The speed increase can be
substantial.