Devise is a flexible authentication system for Rails. It's constantly being updated and has pretty good documentation. It's quickly becoming the de-facto authentication solution in the Ruby on Rails world.
These Railscasts will help get you started if you're new to Devise:
There will come a time when you'll need to validate a plain text password outside of the Devise standard flow. This is how you can go about that assuming you have a similar setup:
The method #valid_password? will be available in your Devise based models which you can pass a plain text password and receive a true/false return value.