Universal Password Manager
Copyright (C) 2005-2011 Adrian Smith
Universal Password Manager is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Universal Password Manager is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Universal Password Manager; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Universal Password Manager (UPM) allows you to store usernames, passwords, URLs,
and generic notes in an encrypted database protected by one master password.
There are several open source password managers available so what makes UPM
different? It's three strongest features are...
* it's simplicity - it provides a small number of very strong features with no
* cross platform - UPM runs on Android, Windows, Mac OS X and Linux.
* database sharing - This feature allows your to keep you database in sync
across several locations by maintaining a shared copy in a remote HTTP location.
.Small, fast and lean
.Uses AES for database encryption
.Shared password database
.Written in Java/SWING
.Android, Windows and Mac OS X native feeling versions available
.Fast account searching
.Streamlined for those who are more comfortable using the keyboard only
3. Database Sharing
The database sharing feature was introduced in version 1.1. The reason it came
about was because I was using UPM at home and at work and was finding it a real
pain trying to keep the databases on both machines in sync. With database
sharing UPM uses a remote copy of your database to keep all the local copies in
sync. It does this by downloading the remote copy before you make local changes
and by uploading your local copy after you've made changes.
Server Side Steps
To use database sharing you need to specify where you want your remote database
stored. At present UPM supports HTTP and HTTPS locations (both password
protected by basic authentication and non password protected).
To upload your database UPM comes with a PHP script (upload.php) that needs to
be placed in the directory where you want to store the database. You'll find
this script in the .\server\http directory of your UPM installation.
To configure your database with the remote location open your database and go
to the Database -> Database Properties menu item. In the URL field enter the
URL of your remote location. If you put the upload.php file at
http://www.mydomain.com/securedir/upload.php then enter
http://www.mydomain.com/securedir in the URL field. If this URL is password
protected then select the account in your database that has the relevant
username and password. When you click OK UPM will upload your database to this
When the text "Revision x - Unsynchronised" appears in red in the status bar
this means that your local database and the remote database may by out of sync.
To synchronise them press the Synchronise button or the menu item
Database -> Sync with Remote Database</i>. When the databases are in sync the
status bar will read "Revision x - Synchronised".
Once you've configured your database to use a remote copy UPM will download the
remote database before you make any changes to your local copy. This ensures
that any changes you made on another machine will be downloaded to your current
machine so that they're not lost.
UPM supports multiple languages. For each language a separate resource bundle
file is included. UPM includes resource bundles for
I'd really appreciate help from anyone willing to provide translations for
UPM's messages. You can find the English resource bundle (upm.properties) in
the upm.jar file that ships with UPM (Winzip, 7-Zip, or some other zip tool
can be used to uncompress the JAR file).
.Allow multiple edits on the local database between synchronizations
.Native Linux distributions (RPM, DEB)
23-Jan-2012 : Version 1.8
- Added support for UTF-8 (issue #9)
- Set "Load Database on Startup" after creating a new database (issue #8)
15-Oct-2011 : Version 1.7
- Fixed a file rename problem that caused database sync to fail when multiple filesystems are involved (Issue #2)
- Fixed focus problems on the Enter Master Password dialog
01-Feb-2011 : Version 1.6.1
- Enable CTRL-C on the account details password field
22-Jun-2010 : Version 1.6
- Added the ability to export/import from/to a CSV file
- Added a random password generator
- Removed the dependency on JCE Unlimited Strength Jurisdiction Policy Files
- Added support for using HTTPS URLs with database sharing
- Set focus on the password field on all enter master password dialogs
- Added Spanish translation (courtesy of Victor Alfonso Pineda)
- Resize the "Notes" text area when the Account Details dialog is resized
31-Dec-2006 : Version 1.5
- Added Czech and German translations (courtesy of Petr Ustohal)
- Added username and password fields to the HTTP proxy options
- The HTTP Proxy can be enabled/disabled using a checkbox while still
retaining the settings for later use
- In the account information dialog the password is masked by default.
To view it you untick a checkbox. Thanks to Jelle De Pot for suggesting
- Removed the French localisation (no French translator available)
- Fixed a problem that caused a NullPointerException on the Mac OS X
version when exiting the Options dialog after changing the language
- A few small bugfixes here and there
27-Nov-2006 : Version 1.4
- Added support for internationalisation. English and French language bundles
- Added support for editing the account name
- Double clicking or hitting enter on an account opens the account in
read-only view mode. Edit it still available on the toolbar, menu bar and
as a keyboard shortcut.
23-Sep-2006 : Version 1.3
The primary purpose of this release is the introduction of AES database encryption.
- Use the BouncyCastle AES provider to encrypt the database (PBEWithSHA256And256BitAES-CBC-BC)
- Moved the database structural version out of the encrypted portion of the database.
This means that UPM can use the database version to decide how to decrypt the database.
09-Sep-2006 : Version 1.2
This is primarily a bug fix release.
 - Database sync problem on Mac
- Tidy up the HTTP proxy code in the HTTPTransport class
- Don't prompt the user for the password on each database sync
- Don't bother showing a "success" dialog on each database sync
- Don't bother asking the user to sync database on application exit
- Change the status bar message for local databases
- When user edits and account check if it has changed before marking the database as dirty
22-Sep-2006 : Version 1.1
This release has one major new feature, database sharing. This feature allows you to have one database that can be accessed from many machines.
21-Dec-2005 : Version 1.0
This is first stable release of UPM. It's a bugfix release only and has no functional differences to version 1.0b1. Databases created with 1.0b1 are fully compatible with 1.0.
 - Possible to change account name to existing account name
 - Possible to add duplicate account when account name filtered
 - Incorrect items listed after an add when list is filtered
 - Error deleting last account in the listview
 - Wrong URL on About page
5-Dec-2005 : Version 1.0b1