Migration option for Handy Safe


#1

Handy Safe is one of the first widely adopted password managers on the market. While it still works with small glitches it is without ongoing support which is critical for software of this type. Synchronisation is broken with recent mobile phones, etc. Conversion options are limited - SafeWallet (already defunct) and KeePass.

Exploring the options to migrate from Handy Safe to STRIP I discovered that KeePass and HandySafe XML formats are extremely similar. One can convert between both formats with mass replace in a text editor.

Could I suggest adding Handy Safe option in the STRIP’s Convert tool? And when you do it please make a dedicated blog post so abandoned Handy Safe users find out about it.

Nik


#2

This is a highly technical guide on how to convert HandySafe exported xml file to SafeWallet xml and then use STRIP convert tool to import into STRIP.

For the conversation I used VIM, a very powerful text editor. For the unfamiliar with VIM, each line below is a command. To enter a command in VIM you should first press “:”, followed by the command, then execute with Enter. I have also added some notes: [note].

[convert the various types of line]
[each line below starts with %s they may not fit on one line based on your screen size]

%s/<HandySafe>/<SafeWallet WalletName="HSConvert">/gc
%s/<\/HandySafe>/<\/SafeWallet>/gc
%s/<Folder name="/<Folder Caption="/gc
%s/<Card name="/<Card Caption="/gc
%s/<Field name="\([^\"]*\)"\(\/\?\)>/<Property Caption="\1" Type="String"\2>/gc
%s/<Field name="\([^\"]*\)" type="1"\(\/\?\)>/<Property Caption="\1" Type="String"\2>/gc
%s/<Field name="\([^\"]*\)" type="2"\(\/\?\)>/<Property Caption="\1" Type="Phone number"\2>/gc
%s/<Field name="\([^\"]*\)" type="3"\(\/\?\)>/<Property Caption="\1" Type="Date"\2>/gc
%s/<Field name="\([^\"]*\)" type="6"\(\/\?\)>/<Property Caption="\1" Type="Password"\2>/gc
%s/<Field name="\([^\"]*\)" type="[0-9]"\(\/\?\)>/<Property Caption="\1" Type="String"\2>/gc
%s/<\/Field>/<\/Property>/gc
%s/<Note>/<Property Caption="Note" Type="Note">/gc
%s/<\/Note>/<\/Property>/gc

[save the file]

w

[now make a copy in case you need to correct something in the future]
[delete all empty fields]

g/"\/>/d

[convert to specific encoding]

set encoding=ucs-2le

[save and close the file]

wq

[end]

Try converting with STRIP conversion tool and then import in STRIP.
Don’t forget to delete the unencoded files once you are done.

Good luck!


#3

Hi @nick, thanks so much for the great post! Clever idea, converting to one of the other supported formats. Sorry that we haven’t had a chance to work support for Handy Safe directly into the converter yet. Hopefully this will help anyone else making the jump to STRIP.

Cheers!