encrypt passwords and hold on Oracle tables

Our development team want to control access to application functionality via
'logical' users. That is, a list of users and the application functions they
can use will be maintained in a database table. Actual connection to the
database would always be via one user(maybe the schema owner, maybe some
other single specified user).

Does anyone else have applications that work in this way? What use do you
use to connect to the database?

The 'logical' users would also have passwords that would need to be held on
the database tables. Is there any (easy) way to encrypt a character string
and store it on the database?

The front end application is Visual Basic using OO4O...but we use lots of
PL/SQL too.