paint-brush
Build your own User-friendly Cross-platform Password Managerby@hossam26644
851 reads
851 reads

Build your own User-friendly Cross-platform Password Manager

by hossam26644July 25th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

You don’t have to trust Google, Microsoft, or the pope to have your passwords “auto-filled” The ultimate solution will be to have a separate, randomly generated password for every login. For me, I struggle to remember my birthday already, so I have to use a password manager. I use a local password manager on my computer: I just stick with a password, which is the only password I memorize. I save the encrypted passwords file on a cloud storage drive (ex: google drive or Dropbox): And decrypt the file on any terminal device. This way, google has a meaningless encrypted file, and I have a cross plateform system that works perfectly.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Build your own User-friendly Cross-platform Password Manager
hossam26644 HackerNoon profile picture

You don’t have to trust Google, Microsoft, or the pope to have your passwords “auto-filled”


Having one login password for every website you use is not the smartest idea, we all know that. However, having two or three passwords, one for sensitive logins like banking or email accounts, and others for random less trustworthy logins is not the ultimate solution. Since an exposed password will compromise all the logins sharing the same password.


The ultimate solution is to have a separate, randomly generated password for every login.


If you have the memory to do that, WOWWW…. For me, I struggle to remember my birthday already 😂 so I have to use a password manager .



There is nothing wrong with using Google’s password manager, Microsoft, Apple, 1password, Bitwarden, or whatever. People have been using them for long, with zero problems till now.


However, maybe I am a security freak, but I don’t want to trust my passwords to an entity, regardless of their promises &/reputation.


If you are like me, I will share with you how I mange my passwords, without relying on an online password manager, and also without sacrificing usability.


  1. I use a local password manager on my computer:


    keepass is a way to store your passwords locally, encrypted with a password or a key file. Here I just stick with a password, which is the only password I memorize.


    keepass is a very old opensource project, that has not seen any development for so long. However, it’s methodology is used in many forks, here I use keepassXC, which just has a more modern UI, and nice auto-complete features.


    keepassXC logo

    You can validate that you can trust any keepass fork by running them in a sandbox, or monitor their network activity, they should not have any.


  2. I save the encrypted passwords file on a cloud storage drive (ex: google drive or Dropbox):

    Although google now has my file, it’s meaningless for them, since they don’t have the encryption key. The general idea of this way of managing passwords is that no entity is going to have the passwords database file + it’s key.


  3. I use a local password manager on my other devices (ex: phone, tablet):

    Now the phon’s local password manager will use the phone OS files manager app to read the passwords encrypted file. The guarantee that this app does not steal your passwords is that it has to work offline, and only offline.


Now what I have is a cross-platform system, that works as good as the local password managers work. Which is nothing less than what any online password manager can be.



More details, so that you can have a smooth ride implementing your system:


  1. As I mentioned, I use keepassXC. I made it start automatically when I turn on my computer. The below suggestions are based on a Ubuntu20 OS.


    1. To download keepassXC for ubunto:sudo snap install keepassxc or get your right download from https://keepassxc.org/download/


    2. It is very useful to make a hotkey to auto-fill passwords, for me it is alt+shift+space. You will find the option to set a hotkey combination in the app’s settings.


    3. When you save a password with any keepass manager, provide the url to the login in the adding a login entry on keepassXCdedicated field, so that it gets suggested to be filled when you click the keepass hotkey. Otherwise, you will have to search for the password in the database.


    4. KeepassXC can’t read the url to suggest the right login information in a browser window. , this can be solved by:

    1. Using their browser extension, it connects to the main app.

    2. or use an extension to put the url of the website in the tap header, which keepassxc can read.

      for me, I use the latter since it is more secure.

    3. I use a FUSE system to mount my google drive

      1. You can find how to mount google drive using Ocamlfuse here https://www.omgubuntu.co.uk/2017/04/mount-google-drive-ocamlfuse-linux

      2. I added the mount line to the .bashrc so that it gets mounted whenever I login

      3. you may want to set mv_keep_target=true in ~/.gdfuse/default/config so that when you add a password, the file gets modified, instead of making a new file with the same name. This is to avoid confusing the other keepass managers in other systems (like the phone)

        A screenshot of my database taken from keepassXC


    4. Of course, you have to save your database on the cloud drive (like google drive), I suggest making a separate directory for it.


    5. By default, you will have sections for putting organizing your logins, use them they will make life easier later.


    8. Lastly, of course, make it suggest a bloody complicated password for every login you are going to add.


    screenshot of a the random passwrod generator



  1. I use keepassium on my iphone and ipad https://keepassium.com/:



    screenshot from keepassium on iphone

    1. For android, you can find other keepass managers, they are everywhere 😅.


    2. The app works completely offline, it uses apple’s file manager to read the passwords database file from google drive. so it can not leak your passwords.


    3. The app free version gives enough, it restricts the auto-fill a bit, but it is OK for me.


    4. Once you give it the database, you have to unlock it with the master password of course.


    5. It can store the database offline when it can’t reach google drive (very useful when there is no internet connection)


    6. Sometimes when you write to the file from other sources, like computer, it gets confused and thinks that the original file is no longer there. No worries just add the file again.


    7. I store the master password on my iphone’s keychain, as a precaution if I forget it. it doesn’t compromise safety as it is a password without the encrypted file. Just like having a key without knowing which door it opens.


    Having a secure system like this does not mean you are 100% safe, passwords can be leaked by fake logins, reading your clipboard (things you copy), key-loggers, ..etc. So don’t put your guard down because you are using a password manager.


    Finally, you can implement the same concept in any different way. Just remember, don’t give the encrypted database and its password to the same entity.